Форма django "исключать" работает, "поля" не

Этот вопрос кажется слишком сложным, поэтому, если я не предоставлю достаточно подробностей, извините. В этом проекте я использую кучу разных вещей, поэтому для подробностей обо всем этом мне понадобится полдня. Если есть что-то конкретное, что поможет вам найти решение, пожалуйста, спросите.

У меня есть представление формы, со сложным конвейером. В моем виде формы я использую ModelFormsetView из дополнительных представлений django. Я полагаю, что ошибка должна быть где-то в этом коде, но если я посмотрю в их коде, на каждом шаге присутствуют как "исключать", так и "поля", и она никогда не пропускает.

fields = ('name', 'toggle_on', )

вместо

exclude = ('created', 'modified', )

Он всегда будет содержать "создано" и "изменено". Если я исключаю, это всегда работает. В документах Django говорится, что нужно использовать "поля" вместо "исключать".

Я знаю, что в конвейере есть куча других переменных, подобных этому, но поскольку изменение из полей для исключения решает, это должно быть что-то не так с формой.

Также я должен отметить, что Allocation является дочерним классом полиморфной модели с именем category, поэтому мне приходится иметь дело с "category_ptr".

По запросу я выкладываю код формы.

class AllocationFormBudget(FilterDestinationBudget):
    start_date = forms.DateField(widget=DateInput(), required=True, initial=date.today())
    end_date = forms.DateField(widget=DateInput(), required=False)

class Meta:
    model = Allocation
    #fields = ('name', 'source_account', 'minimum', 'additional_amount', 'toggle_on', 'broad_category', 'start_date',
    #          'match_source_account_period', 'allocation_dates', 'flexible_percent', 'payment_type')
    exclude = ('created', 'modified', 'reimbursable_percent', 'category_ptr', 'end_date', 'destination',
               'transaction_identifiers', )

def __init__(self, *args, **kwargs):
    super(AllocationFormBudget, self).__init__(*args, **kwargs)
    self.fields['match_source_account_period'].widget.attrs = {'class': 'Match_Account'}


class FilterDestinationBudget(forms.ModelForm):
    name = forms.CharField(widget=forms.TextInput(attrs={'size': '20'}))
    minimum = forms.DecimalField(widget=forms.TextInput(attrs={'style': "width: 7em", 'type': 'number', 'step': '0.01'}),
                             initial=0.00)
    additional_amount = forms.DecimalField(widget=forms.TextInput(attrs={'style': "width: 7em", 'type': 'number',
                                                                     'step': '0.01'}), initial=0.00)
    flexible_percent = forms.DecimalField(widget=forms.TextInput(attrs={'style': "width: 7em", 'type': 'number',
                                                                    'step': '0.01'}), initial=0.00, required=False)

def __init__(self, *args, **kwargs):
    super(FilterDestinationBudget, self).__init__(*args, **kwargs)
    self.fields['source_account'].widget = forms.HiddenInput()
    self.fields['broad_category'].widget.attrs.update({'class': 'BC_Dropdown'})

0 ответов

Другие вопросы по тегам