[英]Django formset without modelform not working
我正在嘗試創建我的第一個django formset。 我正在關注這個例子 ,但不能創建只有一個模型的formset(其他形式是常規的,沒有附加模型)。
forms.py(相關部分)
class ArrivalForm(forms.ModelForm):
class Meta:
model = Reservation
fields = ['passenger_name', 'passenger_lastname', 'passenger_email', 'author_chain' ]
helper = FormHelper()
helper.form_tag = False
helper.label_class = 'col-lg-3'
helper.field_class = 'col-lg-9'
class RouteForm(forms.Form):
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.form_tag = False
super(RouteForm, self).__init__(*args, **kwargs)
place = forms.CharField(max_length=255)
time = forms.TimeField()
RouteInlineFormset = inlineformset_factory(ArrivalForm, form=RouteForm, extra=2, can_delete=True)
錯誤
TypeError at /reservations/create/arrival
inlineformset_factory() takes at least 2 arguments (4 given)
題
如何non-model
表單創建新的formset。 在文檔中,我只能找到如何為ModelForm
執行此ModelForm
。
formset_factory
是您在沒有模型的情況下創建formset所需的。 你可以在這里閱讀詳細信息。 這是一個例子。
from django.forms import formset_factory
from django.shortcuts import render
from myapp.forms import ArticleForm, BookForm
def manage_articles(request):
ArticleFormSet = formset_factory(ArticleForm)
BookFormSet = formset_factory(BookForm)
if request.method == 'POST':
article_formset = ArticleFormSet(request.POST, request.FILES, prefix='articles')
book_formset = BookFormSet(request.POST, request.FILES, prefix='books')
if article_formset.is_valid() and book_formset.is_valid():
# do something with the cleaned_data on the formsets.
pass
else:
article_formset = ArticleFormSet(prefix='articles')
book_formset = BookFormSet(prefix='books')
return render(request, 'manage_articles.html', {
'article_formset': article_formset,
'book_formset': book_formset,
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.