django model/modelForm - Как получить динамический выбор в choiceField?

В дополнение к ответу DannySmurf лени я добавлю, что это должно поощрить Вас использовать константы, такой как Calendar.JANUARY.

10
задан w-- 8 September 2009 в 01:16
поделиться

1 ответ

Ура, решено. после того, как весь день бился головой и просматривал всевозможные примеры людей, я заставил это работать.

в основном у меня была правильная идея с №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
15
ответ дан 3 December 2019 в 21:22
поделиться