В дополнение к ответу DannySmurf лени я добавлю, что это должно поощрить Вас использовать константы, такой как Calendar.JANUARY
.
Ура, решено. после того, как весь день бился головой и просматривал всевозможные примеры людей, я заставил это работать.
в основном у меня была правильная идея с №2. Шаги:
- Создайте ModelForm нашей модели
- переопределить пользователя поля формы по умолчанию для models.CharField. то есть мы хотим явно сказать, что используйте selectionField.
- Затем мы должны переопределить способ создания формы, чтобы мы вызывали то, что хотим использовать для генерации нашего динамического списка вариантов
- затем в нашем ModelAdmin убедитесь, что мы явно указываем администратору использовать нашу ModelForm
class Test1(models.Model):
test_folder_ddl = models.CharField(max_length=100)
class Test1Form(ModelForm):
test_folder_ddl = forms.choiceField()
def __init__(self, *args, **kwargs):
super(Test1Form, self).__init__(*args, **kwargs)
self.fields['test_folder_ddl'].choices = utility.get_folder_list()
class Test1Admin(admin.ModelAdmin):
form = Test1Form