Django:如何将存储的模型实例用作表单选项?
我有一个模型,实际上就是一个字符串(django.db.models.CharField)。这个模型只会存储几个实例。我该如何在表单中使用这些值作为选项呢?
举个例子,这个模型可以叫做 BlogTopic
。我想让用户能够选择一个或多个主题来订阅。
我开始写了一些代码:
from mysite.blog.models import BlogTopic
choices = [(topic.id, topic.name) for topic in BlogTopic.objects.all()]
class SubscribeForm(forms.Form):
topics = forms.ChoiceField(choices=choices)
但我不太确定 choices
应该在什么时候定义。我猜应该是在模块第一次被导入的时候(也就是启动Django的时候)。显然,这不是一个很好的方法。
这看起来应该是一个常见的需求,但我似乎找不到任何例子。我怀疑我可能漏掉了一些明显的东西。无论如何,提前感谢你的回答。
1 个回答
27
topics = forms.ModelMultipleChoiceField(queryset=BlogTopic.objects.all())
当然可以!请把你想要翻译的内容发给我,我会帮你把它变得更容易理解。