1

Je reçois cette erreur "'initiale' est un argument mot-clé invalide pour cette fonction", j'essaie de créer un objet par un createview, quelle est cette erreur et pourquoi je l'obtiens?'initial' est un argument mot-clé invalide pour cette fonction

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') 

modifier

Après submiting la forme, je reçois cette url

localhost/ajouter /? = Csrfmiddlewaretoken PVjqYnZNwJZpHuObu1OXNSnIekeqMVVeNIIxTkr2UFH7ii83QScfGdBrX5HjmZCe & Nome = test & Cpf = 00000000000 & Données = 1998-12-14

Pourquoi est-ce?

+0

Traceback où? –

+0

J'ai édité mon poste – Goun2

Répondre

4

Vous avez défini la classe form_class dans cette vue comme étant Trabalhadores, qui est le modèle, au lieu de TrabalhadoresForm, qui est le formulaire.

+0

Oui, c'était le problème, mais maintenant en soumettant le formulaire je reçois une URL étrange, merci, j'ai édité mon post. – Goun2

+0

Vous ne devez pas avoir défini 'method = 'POST'' dans l'élément de formulaire de votre modèle. –

+0

merci, j'avais pris le poste sur le formulaire. – Goun2

0

Vous devez mettre votre form_class est égal à votre formulaire

Comme form_class = TrabalhadoresForm, parce que vous créez vue à l'aide de votre de la classe et les données seront passer par votre classe de modèle même pour tous les types de Django générique vue de la classe