保存Django表单集

2024-09-30 08:25:45 发布

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

下面的代码成功地向我的数据库添加了一个新的工具校准,但是它没有保存SerialFormset或PartFormset。我已经盯着这段代码试图弄清楚它已经有一段时间了,所以任何和所有的帮助都将非常感谢。谢谢!在

在表单.py在

from django.forms import ModelForm
from django.forms.models import inlineformset_factory
from tool_cal.models import ToolCalibration, SerialNumber, PartNumber

class ToolForm(ModelForm):
    class Meta:
        model = ToolCalibration

SerialFormSet = inlineformset_factory(ToolCalibration, SerialNumber, can_delete=True)
PartFormSet = inlineformset_factory(ToolCalibration, PartNumber, can_delete=True)

在视图.py在

^{pr2}$

Tags: django代码frompyimportmodelsfactoryforms
1条回答
网友
1楼 · 发布于 2024-09-30 08:25:45

你考虑过使用django-extra-views吗?它包含一个用于处理inlineformset的快速而简单的CBV。在

除了InlineFormSetViewGenericInlineFormSetView,他们还有一个CreateWithInlinesView似乎正是你想要的。相关文件here。在

示例:

from extra_views import InlineFormSet, CreateWithInlinesView, UpdateWithInlinesView,
from extra_views.generic import GenericInlineFormSet

from tool_cal.models import ToolCalibration, SerialNumber, PartNumber    


class SerialNumberInline(InlineFormSet):
    model = SerialNumber


class PartNumberInline(GenericInlineFormSet):
    model = PartNumber


class ToolCreateView(CreateWithInlinesView):
    model = ToolCalibration
    inlines = [SerialNumberInline, PartNumberInline]

    def get_success_url(self):
        return self.object.get_absolute_url()

即使你不想使用它们,你也可以深入研究代码,看看它们是如何处理的。在

相关问题 更多 >

    热门问题