Django模型获得了意外的关键字参数' auto_id'

发布于 2025-01-24 14:31:40 字数 1711 浏览 3 评论 0原文

我正在尝试创建一个带有FormSet的页面。到目前为止,我已经获得以下内容:

forms.py

class ContractorForm(forms.ModelForm):
    class Meta:
        model = Contractor
        fields = [
            'first_name', 'last_name', 'email', 'company_name',
        ]

views.py

class ContractorUpdateView(SimpleLoginRequiredMixin, TemplateView):
    def get(self, request, *args, **kwargs):
        """Handle GET requests: instantiate a blank version of the form."""
        ContractorFormSet = formset_factory(
            Contractor)

        contractor_formset = ContractorFormSet()
        context = {"contractor_formset": contractor_formset}
        return render(
            request, "accounts/contractor_form.html", context)

contractor_form.html,

      <div class="card-body">
        <form class="" method="post" action="" id="facility_contractor_form">
        {% for form in contractor_formset %}
          {% csrf_token %}
          {{ form.as_p }}
        {% endfor %}
        </form>
      </div>
      <!-- /.card-body -->
      <div class="card-footer">
        <a href="javascript:history.back()" class="btn btn-secondary">Cancel</a>
        <input type="submit" form="facility_contractor_form" value="Save Changes"
               class="btn btn-success float-right">
      </div>

但是当我尝试打开页面时,我会收到以下错误:

TypeError at /facility/2/contractor/

Contractor() got an unexpected keyword argument 'auto_id'

有什么想法吗?我认为我的使用也许是错误的想法

I am trying to create a page with formset in it. So far I've gotten the following:

forms.py

class ContractorForm(forms.ModelForm):
    class Meta:
        model = Contractor
        fields = [
            'first_name', 'last_name', 'email', 'company_name',
        ]

views.py

class ContractorUpdateView(SimpleLoginRequiredMixin, TemplateView):
    def get(self, request, *args, **kwargs):
        """Handle GET requests: instantiate a blank version of the form."""
        ContractorFormSet = formset_factory(
            Contractor)

        contractor_formset = ContractorFormSet()
        context = {"contractor_formset": contractor_formset}
        return render(
            request, "accounts/contractor_form.html", context)

contractor_form.html

      <div class="card-body">
        <form class="" method="post" action="" id="facility_contractor_form">
        {% for form in contractor_formset %}
          {% csrf_token %}
          {{ form.as_p }}
        {% endfor %}
        </form>
      </div>
      <!-- /.card-body -->
      <div class="card-footer">
        <a href="javascript:history.back()" class="btn btn-secondary">Cancel</a>
        <input type="submit" form="facility_contractor_form" value="Save Changes"
               class="btn btn-success float-right">
      </div>

But when I try to open the page, I'll get the following error:

TypeError at /facility/2/contractor/

Contractor() got an unexpected keyword argument 'auto_id'

Any ideas? I think my using for maybe the wrong idea

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遗忘曾经 2025-01-31 14:31:40

您的ContractorupDateView引用该模型,虽然应该引用表格,因此必须是:

ContractorFormSet = formset_factory(ContractorForm)

Your ContractorUpdateView references the model, while it should reference the form, so it gotta be:

ContractorFormSet = formset_factory(ContractorForm)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文