如何在Django中处理具有多对多关系的多个表单

在我看来,我有预订信息,在预订中,我与预订中的团体规模和年龄有多对多的关系。类(组大小,年龄)具有多对多关系。在预订时,我希望用户能够添加课程详细信息。所以预订可以有很多课程。 我曾尝试使用
inline_formset_factory
但它不喜欢多对多关系,根据文档
inline_formset_factory
是为了
ForeignKey
关系(我在这里很容易出错)。在我使用
inline_formset_factory
之前,似乎我需要一个预订实例(虽然我可能错了) 所以回顾一下我是django的新手,我正试图通过预订表格中的表格添加许多课程。我只是不确定我是否走在正确的轨道上。 我希望这是有道理的。提前致谢。     
已邀请:
而不是自己创建表单,而是使用
ModelForm
将表单绑定到应用程序中的模型,自动创建保存或编辑与其链接的模型实例所需的字段类型。 向您的数据库添加
Booking
实例的最简单方法是使用
ModelForm
from django.db import models
from django.forms import ModelForm

class Booking(models.Model):
    ...

class BookingForm(ModelForm):
    class Meta:
        model = Booking
有关
ModelForm
s的更多信息,请参阅Django文档。接下来在您的视图中创建一个
BookingForm
的实例,在模板上下文中传递它:
def your_view(request):
    if request.method == 'POST':
        form = BookingForm(request.POST)
        if form.is_valid():
            booking = form.save()
            return HttpResponseRedirect('/success/url/')
    else:
        form = BookingForm()

    return direct_to_template(request, 'your/template.html', {
        'form': form
    })
有关在视图中处理表单的更多信息,请参阅Django文档中的视图中的表单。在模板中,您可以简单地打印整个表单(以及所有相关字段),如下所示:
<form action="" method="post">
    {{ form.as_p }}
    <input type="submit" name="submit" value="submit">
</form>
有关模板中表单的更多信息,请参阅使用模板显示表单。     

要回复问题请先登录注册