CharFieldの選択肢のモデルクラスのフィルタリングされたリストを取得したいと思います。 2つの要素のタプルが含まれていれば、どのような繰り返しも可能です。Djangoの動的選択
コードは次のようになります:
>>> x = [(m.__name__, m.__name__) for m in models.get_models() if 'WorkflowAware' in [b.__name__ for b in m.__bases__]] >>> x [('ActivityContent', 'ActivityContent')] >>> x.__class__ type 'list' >>> x[0].__class__ type 'tuple' >>> x[0][0].__class__ type 'str'
私は管理インターフェイスに取得すべてはなし、標準CharFieldですレンダリングです:
WORKFLOWAWARE_MODELS = [(m.__name__, m.__name__) for m in models.get_models() if 'WorkflowAware' in [b.__name__ for b in m.__bases__]]
class Workflow(models.Model):
""" Workflow controls who does what where """
workflow_content_type = models.CharField(max_length=64, choices=WORKFLOWAWARE_MODELS, unique=True, blank=True)
リストの内包が、このような2列のタプルのリストを返します。選択肢。
私はカットし、リスト内包管理者によって返された値を貼り付け選択肢レンダリング:私は何をしないのです
WORKFLOWAWARE_MODELS = [('ActivityContent', 'ActivityContent')]
を??
PS tuple()は違いがありません。
ありがとうございました。それを働かせることができませんでした。私はジェームズ・ベネット(以下参照)からジャンゴ・スニペットを見つけることになった。 –