Использование цикла for в тегах django для ForeignKey - PullRequest
0 голосов
/ 20 ноября 2018

Мой цикл django в шаблонах работает неправильно.Почему из-за меня все выглядит хорошо?Любая помощь будет оценена.

Мои модели.py

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

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

Мои views.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)

Мои шаблоны.html

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

Это не дает результатов, даже если в базе данных есть данные.

1 Ответ

0 голосов
/ 20 ноября 2018

Вы делаете это задом наперед. Ваша модель 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 %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...