Django get_context_data, динамический контент
Я вытащил список пользователей, а затем для каждого пользователя вытащил определенную статистику в подробном представлении. Я надеялся, что смогу просто перебрать данные в представлении get_context, но я очень ошибался, а затем я сделал еще одну ошибку в шаблоне, и это сработало! Ура:/
я думаю get_context_data
Лучше всего подходит для этого, но я пытаюсь понять, как сделать это более эффективным способом. Мой код ниже дает мне то, что я хочу, но это не красиво.
usermodel_detail.html
{% for i in range %}
<h3>Trainees {{trainees|index:forloop.counter0}}</h3>
{% if foods|index:forloop.counter0 %}
{% for food in foods|index:forloop.counter0 %}
.
.
.
{% endfor %}
{% endif %}
{% endfor %}
views.py
class UserModelDetailView(LoginRequiredMixin, DetailView):
model = UserModel
def get_context_data(self, **kwargs):
context = super(UserModelDetailView, self).get_context_data(**kwargs)
context['trainees'] = UserModel.objects.filter(trainer_email=self.request.user)
foods = dict()
for index,trainee in enumerate(context['trainees']):
foods[index] = Food.objects.filter(user_id=trainee.pk)
context['foods'] = foods
context['range'] = str(len(context['trainees']) + 10) # had to add 10 to get the range to be 2 strings long, works for now but it's not a good way
return context
def get_queryset(self):
userpk = self.request.user.pk
queryset = UserModel.objects.filter(pk=userpk)
return queryset
Есть ли более простой способ сделать это или лучше?