Bri*_*uft 2

您可以将choices属性设置为任何可迭代的: http://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.Field.choices

我自己没有对此进行过测试,所以我不确定何时实际评估选择属性,但您也许可以分配一个生成器函数来计算您所需的选择。

您还可以使用模型 post_init 信号进行调查:http://docs.djangoproject.com/en/1.1/ref/signals/#post-init

这将使您可以在 Django 初始化模型后访问您的模型,以便您可以在那时设置选择。您可能想像这样浏览“_meta”界面:

instance._meta.get_field_by_name('FIELD_NAME')[0].choices = [<choices>...]
Run Code Online (Sandbox Code Playgroud)