没有modelform的Django formset不工作

2024-09-28 20:45:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建我的第一个django表单集。我遵循this example,但无法创建只有一个模型的表单集(另一个表单是常规的,没有附加模型)。在

forms.py (relevant part)

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)

Error

^{pr2}$

Question

如何为non-model窗体创建新窗体集。在documentation中,我只能找到如何对ModelForm执行此操作。在


Tags: 模型selfformhelperfalse表单modeltag
1条回答
网友
1楼 · 发布于 2024-09-28 20:45:30

formset_factory是创建没有模型的表单集所需的。您可以阅读详细信息here。这是一个例子。在

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,
    })

相关问题 更多 >