Там какой-либо простой способ состоит в том, чтобы сделать так?
Вы можете установить для атрибута choices любое итеративное значение: http://docs.djangoproject.com/en/dev/ ref / models / fields / # django.db.models.Field.choices
Я сам не тестировал это, поэтому я не уверен, когда действительно оценивается атрибут 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>...]