поля и base_fields - Django

При создании flatpage я хочу, чтобы пользователь выбрал шаблон из предопределенного списка. Для хранения Flatpage нетронутая модель, я предпочитаю ChoiceField ModelChoiceField (последний обеспечивает PK шаблона, но мне нужно название template_name поля):

class NewFlatpageForm(FlatpageForm):

    template_name = forms.ChoiceField(choices = [])
    def __init__(self, *args, **kwargs):
        self.base_fields['template_name'].choices = ProjectTemplate.objects.values_list('path', 'name')
        super(NewFlatpageForm, self).__init__(*args, **kwargs)

Я переопределяю __init__ или Django заполняет выбор в сервере, запускаются, и не обновляет список затем.

У меня нет администраторского опыта, но я сделал подобные вещи с помощью fields припишите если не использование администратора. Однако в этом случае я получил сообщение исключения fields не атрибут формы. __dict__ показал мне существует a base_fields атрибут и использование его работают. Так, почему использование base_fields здесь, и почему fields не представляют, и наконец я делаю что-то hacky?

11
задан shanyu 26 January 2010 в 16:37
поделиться

1 ответ

Пара других вариантов:

file = File.read(path).sub(/line2\n/, 'Some nice little sentence\n\1')
File.write(path, file)

file = File.readlines(path)
index = file.index("line2")
file.insert(index, "Some nice little sentence")
File.write(path, file)
-121--2943720-

поля не существует до после , который вы вызывали Super . Так что просто поменяйте порядок строк, так что сначала приходит .

13
ответ дан 3 December 2019 в 03:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: