gpt4 book ai didi

python - 在 Django 中遍历外键的“树状”下拉列表

转载 作者:太空宇宙 更新时间:2023-11-03 18:11:25 24 4
gpt4 key购买 nike

我有一些以下形式的模型:

class Poll(models.Model):
question_text = models.CharField(max_length=400)

class PollChoice(models.Model):
poll = models.ForeignKey(Poll)
choice_text = models.CharField(max_length=200)

class PollVote(models.Model):
poll_choice = models.OneToOneField(PollChoice)
weight = models.IntegerField()

假设我有两个带有不同问题的 Poll 对象(例如“你喜欢菠萝吗?”和“你小时候吸过拇指吗?”),每个对象都有"is"和“否”PollChoices。目前,如果我尝试在管理中创建一个新的 PollVote 对象,PollChoice 下拉列表将向我显示以下选择:

Yes
No
Yes
No

这并没有告诉我我将投票给哪个民意调查。有没有办法创建这种形式的下拉菜单?

<Do you like pineapples?>
Yes
No
<Did you suck your thumb as a child?>
Yes
No

尖括号中的条目理想情况下是不可选择的,并且仅用于消除我要选择的 PollChoice 的歧义。如果需要的话,我也愿意添加其他应用程序。

最佳答案

您是否询问如何根据您的模型结构渲染为 HTML?可以通过select_related来完成。示例如下:
查看:

polls = Poll.objects.select_related('pollchoice__poll').all()
return render(request, 'test_poll.html', {'polls': polls})

模板:

<form>
{% for poll in polls %}
<p>&lt;{{ poll.question_text }}&gt;</p>
{% for pollchoice in poll.pollchoice_set.all %}
<input type="radio" name="question_{{poll.id}}" value="choice_{{pollchoice.id}}"> {{pollchoice.choice_text}} <br/>
{% endfor %}
{% endfor %}
</form>

关于python - 在 Django 中遍历外键的“树状”下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25858918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com