#python #django
#python #django
Вопрос:
Я хочу знать, как определить значения выбора для переключателя в шаблоне Django. Вот мой models.py
RATING_CHOICES = ((1, "Weak"), (2, "Average"), (3, "Good"), (4, "Excellent"))
...
class Answer(models.Model):
teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE)
question = models.ForeignKey(Question, on_delete=models.CASCADE)
subject = models.ForeignKey(Subject, on_delete=models.CASCADE)
answer = models.SmallIntegerField(choices=RATING_CHOICES, default=1)
В шаблоне я хочу присвоить значения моего RARING_CHOICES для радио в состоянии цикла.
{% for question in questions %}
<li>{{ question }}</li>
<ul>
<input type="radio" value="">
<input type="radio" value="">
<input type="radio" value="">
<input type="radio" value="">
</ul>
{% endfor %}
Views.py
def index(request):
context = { "questions": Question.objects.all(),
"answers": Answer.objects.all(),
"departments": Department.objects.all(),
"semesters": Semester.objects.all(),
"teachers": Teacher.objects.all(),
"subjects": Subject.objects.all(),}
return render(request, "evaluation/index.html", context)
Ответ №1:
Передайте значение RATING_CHOICE в контексте из представлений
RATING_CHOICES = ((1, "Weak"), (2, "Average"), (3, "Good"), (4, "Excellent"))
context = { "questions": Question.objects.all(),
"answers": Answer.objects.all(),
"departments": Department.objects.all(),
"semesters": Semester.objects.all(),
"teachers": Teacher.objects.all(),
"subjects": Subject.objects.all(),
"rating_choices":RATING_CHOICES,
}
В шаблоне запустите цикл for через rating_choices
{% for question in questions %}
<li>{{ question }}</li>
<ul>
{% for choice in rating_choices %}
<input type="radio" value="{{choice.0}}">{{choice.1}}
{% endfor %}
</ul>
{% endfor %}
Комментарии:
1. Это сработало, но как насчет RATING_CHOICES в models.py ?
2. вы можете импортировать его из моделей. py, как из .models import RATING_CHOICES
3. Есть одна проблема, мистер Кумар, когда я выбираю выбор для одного вопроса и выбираю другой для другого вопроса, мой выбранный переключатель радио с первого вопроса на второй?
4. Имя должно быть разным в каждом случае. Это должно быть похоже на <тип ввода=»радио» значение=»{{выбор.0}}» имя=»вопрос_{{question.id }}»>
5. Я не знаю, как получить доступ к name=»question_{{question.id }}» на мой взгляд. Другие поля просты, например, teacher = request.POST.get(‘учитель’), но это сложно для меня.