Django получить значения из связанной модели (Foreignkey)
В домашних условиях (views.py) как отобразить список всех упражнений (название и повторы), связанных с одной и той же пользовательской картой?
models.py
class Card(models.Model):
user = models.OneToOneField(User)
trainer = models.ForeignKey(User, related_name='trainer')
def __unicode__(self):
return u'%s' % (self.id)
class Exercise(models.Model):
card = models.ForeignKey(Card)
name = models.CharField(max_length=50)
repetitions = models.IntegerField(default=0, blank=True, null=True)
def __unicode__(self):
return u'%s' % (self.name)
views.py
from django.http import HttpResponse
from django.contrib.auth.decorators import login_required
from cards.models import Card, Exercise
@login_required
def home(request):
user = request.user.get_full_name()
return HttpResponse("Welcome %s This is your home." % (user))
1 ответ
Решение
Я никогда не сдамся и наконец исправлю это. Я попробовал это, и это работает.
@login_required
def home(request):
user = request.user.get_full_name()
exercises = Exercise.object.filter(card__user=request.user)
html = []
for k in exercises:
html.append('<tr><td>%s - %s</td></tr>' % (k.name, k.repetitions))
return HttpResponse('Welcome %s This is your home.<br/><table>%s</table>' % (user, '\n'.join(html)))