有没有简单的方法可以做到这一点?

最佳答案

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

我还没有亲自测试过,因此我不确定何时真正评估choices属性,但是您可以分配一个生成器函数来计算所需的选择。

您可能还会使用Model 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>...]

关于django - 在运行时设置模型字段选择属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2388798/

10-11 23:00