Django HTML' for循环'不显示集合中的任何对象

时间:2016-10-21 17:26:07

标签: python html django

所以我的for循环出现问题,这意味着要显示分配给用户的所有任务。正如您在this imgur link上看到的那样,分配了四个任务。但是它不会在网站上显示它们。

这是我的detail.html文件:

<h1>{{user.fullName}}</h1>
<h4>Username: {{user.userName}}</h4>

<ul>
    {% for i in userName.i_set.all %}
        <li> {{ i.taskName }} </li>
    {% endfor %}
</ul>

这是我的models.py:

from django.db import models

class User(models.Model):
    userName = models.CharField(max_length=30)
    password = models.CharField(max_length=100)
    fullName = models.CharField(max_length=50)

    def _str_(self):
        return self.fullName

class Task(models.Model):
    userName = models.ForeignKey(User, on_delete=models.CASCADE)
    taskName = models.CharField(max_length=30)
    scores = models.CharField(max_length=100)  # score should default be set to x/10 until changed

    def _str_(self):
        return str(self.userName) + ' - ' + self.taskName

我知道帮助你不认识的人是一种痛苦,但是我真的很感激,因为我已经在这个问题上工作了一个小时并且什么都没做,我真的很想学习问题是什么......非常感谢,祝你有个美好的一天!

1 个答案:

答案 0 :(得分:1)

根据您提供的代码,您的for loop代码完全错误,请尝试将其更改为:

{% for i in user.task_set.all %}

更好的方法是在related_name中使用ForeignKey以便于访问:

userName = models.ForeignKey(User, on_delete=models.CASCADE, related_name='tasks')

然后,您可以在模板中访问用户的相关任务,如下所示:

{% for i in user.tasks.all %}