【问题标题】:'initial' is an invalid keyword argument for this function'initial' 是此函数的无效关键字参数
【发布时间】:2017-05-04 19:56:14
【问题描述】:

我收到此错误“'initial' is an invalid keyword argument for this function”,我正在尝试通过 createview 创建一个对象,这是什么错误,为什么会出现此错误?

urls.py

from django.conf.urls import url
from . import views

urlpatterns = [
url(r'^add/$', views.CriarTrabalhador.as_view(), name='add')]

models.py

from django.db import models

    # Create your models here.

    class Trabalhadores(models.Model):
        Nome = models.CharField('Name',max_length=100)
        Cpf = models.CharField(primary_key=True,max_length=11)
        Data = models.DateField('Data de Nascimento')

        def __str__(self):
            return self.Nome

forms.py

   from django import forms
   from .models import Trabalhadores

    class TrabalhadoresForm(forms.ModelForm):
        class Meta:
           model = Trabalhadores
                fields = ["Nome","Cpf","Data"]

views.py

from django.shortcuts import render
from django.views.generic.list import ListView
from django.core.urlresolvers import reverse
from .models import Trabalhadores
from django.views.generic.detail import DetailView
from django.views.generic.edit import UpdateView,CreateView
from . import forms

class CriarTrabalhador(CreateView):
    model = Trabalhadores
    form_class = forms.Trabalhadores
    template_name = 'mytemp/adicionartrabalhador.html'

    def get_success_url(self):
        return reverse('trabalhadores')

编辑

提交表单后,我得到了这个网址

localhost/add/?csrfmiddlewaretoken=PVjqYnZNwJZpHuObu1OXNSnIekeqMVVeNIIxTkr2UFH7ii83QScfGdBrX5HjmZCe&Nome=test&Cpf=00000000000&Data=1998-12-14

为什么会这样?

【问题讨论】:

    标签: python django django-forms django-views django-class-based-views


    【解决方案1】:

    你必须把你的 form_class 等于你的表单

    像 form_class=TrabalhadoresForm 一样,因为您正在使用 from 类创建视图,并且数据将通过您的模型类传递 所有类型的 Django 通用类视图都相同

    【讨论】:

      【解决方案2】:

      您已将该视图中的 form_class 设置为 Trabalhadores,即模型,而不是 TrabalhadoresForm,即表单。

      【讨论】:

      • 是的,这就是问题所在,但现在提交表单时,我得到一个奇怪的 url,谢谢,我编辑了我的帖子。
      • 您不能在模板的表单元素中设置method='POST'
      猜你喜欢
      • 2019-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-17
      • 2012-07-07
      • 2013-07-13
      • 1970-01-01
      相关资源
      最近更新 更多