python - 在 django 标签中使用 'for' 循环来获取 'ForeignKey'

标签 python django tags

模板中的 django 循环无法正常工作。为什么,因为我,一切看起来都那么美好? 任何帮助将不胜感激。

我的 models.py

class Tags(models.Model):
    name = models.CharField(max_length=10)

class Person(models.Model):
    keywords = models.ForeignKey(Tags, on_delete=models.CASCADE)

我的观点.py

def person_detail(request, user_id):
    person = get_object_or_404(Person, pk=user_id)
    context = {'person': person}
    return render(request, 'person_detail.html', context)

我的templates.html

{% for tag in person.tags %}
<span class="badge badge-lg badge-pill badge-info"># {{ person.tags.name } </span>
{% endfor %}

即使数据库中有数据,也不会给出任何结果。

最佳答案

你这是在倒退。您的 Tags 模型应该有一个 Person 的外键,而不是相反。例如:

class Person(models.Model):
    ...

class Tag(models.Model):
    person = models.ForeignKey(Person, on_delete=models.CASCADE)
    name = models.CharField(max_length=10)

请注意,我还将您的 Tags 模型重命名为 Tag,因为将模型命名为单数是有意义的。

然后你可以编写以下内容:

{% for tag in person.tag_set.all %}
    ...
{% endfor %}

关于python - 在 django 标签中使用 'for' 循环来获取 'ForeignKey',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53383400/

相关文章:

python - Xpath 用于使用类查找 anchor 标记内的文本(Scrapy)

python - 如何在Python中将二进制数字行堆栈转换为值列?

python - 在python中高效读取数组

python - 如何在 Django 模板中显示当前年份?

android - 区分NTAG213和MF0ICU2

python - 使用 beautifulsoup 提取 url 和标题

python - 转换日期格式python

python - Django 不会扩展到父文件夹中的 base.html

Github:在提交历史记录中显示标签

Eclipse 任务标签