简体   繁体   中英

django get values from a related model (foreignkey)

In home (views.py) how to display a list of all exercises (name and repetitions) linked to the same user Card?

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))

I never give up and finally I fix it. I tried it and it works.

@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)))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM