9

基本的に単なる文字列(django.db.models.CharField)のモデルがあります。このモデルのインスタンスは数個しか保存されません。これらの値をフォームの選択肢として使用するにはどうすればよいですか?

説明のために、モデルは次のようになりますBlogTopic。ユーザーが 1 つまたは複数のトピックを選択して購読できるようにしたいと考えています。

私は次のようなものを書き始めました:

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 の起動時) のみを想定しています。明らかに、それはあまり良いアプローチではありません。

これは一般的な要件のようですが、例が見つからないようです。ここで明らかな何かが欠けているのではないかと思います。とにかく、あなたの答えを前もって感謝します。

4

1 に答える 1