Я все еще изучаю Django. У меня есть мастер, как рабочий процесс формы, где каждая форма заполняет информацию последовательно.Форма Django не действительна по форме модели
У меня есть форма модели, которая представляет то, что я хочу, введенный из формы:
models.py
class AccountParameters(models.Model):
acctFilterName = models.ForeignKey(AccountFilters)
excludeClassification = models.ManyToManyField(ClassificationNames)
tradingCash = models.FloatField()
Forms.py
Это упрощенная вниз форма и не представляет реальной реализации. Это было для тестирования.
class AccountSelectionForm(forms.ModelForm):
acctFilterName = forms.ModelChoiceField(queryset=AccountFilters.objects.all().values_list('acctFilterName', flat=True),
label="Account Filters:",
empty_label="Select Here..."
)
excludeClassification = forms.ModelMultipleChoiceField(queryset=ClassificationNames.objects.all().values_list('classificationName', flat=True),
label="Classifications Exclusion:"
)
tradingCash = forms.IntegerField(label="Remove accounts whose trading cash < % of AUM")
class Meta:
model = AccountParameters
fields =['excludeClassification', 'tradingCash',]
exclude = ['acctFilterName']
labels = {
'acctFilterName': _('Account Filters:')
}
views.py
def accountSelections(request): # NewRebalnce 2: AccountParameters with Accounts and Trading Form
if request.method == "POST":
form = AccountSelectionForm(request.POST)
if form.is_valid():
accountParameters = AccountParameters
#tradingCash = form.cleaned_data['tradingCash']
return render(request, 'NewRebalance_3.html', {'model_selection_form': ModelSelectionForm()})
else:
form = AccountSelectionForm()
return render(request, 'NewRebalance2.html', {'account_selections_form': form})
Я не уверен, что я правильно используя Modelforms. То, что мне было нужно, это способ создать выделение для моего acctFilterName, поэтому я создал запрос вручную.
Когда я сохраняю форму, она недействительна и в форме очищенных данных я получаю следующее: Обратите внимание, что очищенные данные имеют только поле tradingCash.
Что я делаю неправильно? Есть лучший способ сделать это? Почему форма действительна?
Где в view.py Вы сохранили форму? –
Я не потому, что form.is_valid() FALSE – Axwack