Не могу понять этот кусок:
<ul>
{% for choice in question.choice_set.all %}
<li>{{ choice.choice_text }}</li>
{% endfor %}
</ul>
Что делает цикл, что за choice_set.all и как они связаны с choice.choice_text? Вот модели:
import datetime
from django.db import models
from django.utils import timezone
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.question_text
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
def __str__(self):
return self.choice_text
Это называется связанные обьекты:
question.choice_set.all - означает выбрать все Choice связанные с текущим вопросом - то есть те Choice, которые ссылаются на данный Question через поле ForeignKey(Question,...). All в конце вернёт итерируемый queryset, который будет содержать набор соответствующих Choice.
Ну а с choice_text вообще все просто: т.к каждый элемент полученного queryset-а будет являться экземпляром Choice, то вы можете из него обращаться к любому полю модели Choice
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости