1

私はDjango開発を始めたばかりで、ChoiceField()クラスに別のモデルのDBエントリの列からのオプションを動的に入力しようとしています。

これは私が現在状況にアプローチしている方法です:

categories_as_choices = map(lambda x: x.mycolumnname, MyObjectCategory.objects.all())

これが最も「pythonic」なアプローチ(またはDjangoの同等のアプローチ)であるかどうかはよくわかりません。「より良い」方法があるかどうか誰かが知っていますか?

4

1 に答える 1

3

Djangoは、このために特別に設計されたフィールドクラスModelChoiceFieldを提供します。

__unicode__次のように、カテゴリモデルでメソッドを定義する必要があります。

def __unicode__(self):
    return self.mycolumnname

そして、あなたが簡単に使うことができる形で

category = forms.ModelChoiceField(queryset=MyObjectCategory.objects.all())
于 2012-12-17T06:46:14.677 に答える