gpt4 book ai didi

Django: TypeError: 'username' 是此函数的无效关键字参数

转载 作者:行者123 更新时间:2023-12-04 15:12:53 24 4
gpt4 key购买 nike

我有一个名为 Employee 的模型用于注册。当我运行代码时,我去

username' is an invalid keyword argument for this function 

错误。
employee=Employee(user=user, username= form.cleaned_data['username'], email= form.cleaned_data['email'], password=form.cleaned_data['password'])

这是我的 view.py 代码
from django.http import HttpResponseRedirect
from django.contrib.auth.models import User
from django.shortcuts import render_to_response
from django.template import RequestContext
from Employee_Details.forms import RegistationForm
from Employee_Details.models import Employee

def EmployeeRegistation(request):
if request.user.is_authenticated():
return HttpResponseRedirect('/profile/')

if request.method=='POST':
form=RegistationForm(request.POST)
if form.is_valid():
user=User.objects.create_user(username= form.cleaned_data['username'],email= form.cleaned_data['email'],password=form.cleaned_data['password'])


user.save()

employee=Employee(user=user, username= form.cleaned_data['username'],email= form.cleaned_data['email'],password=form.cleaned_data['password'])
employee.save()
return HttpResponseRedirect('/profile/')

else:
return render_to_response('registation.html',{"form":form}, context_instance=RequestContext(request))


else:
'''user is not submitting the form show a blank Registation Form'''
form=RegistationForm();
context={'form':form}
return render_to_response('registation.html',context,context_instance=RequestContext(request))

这是我的模型:
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save

class Employee(models.Model):
user=models.OneToOneField(User)
name=models.CharField(max_length=100)
address=models.CharField(max_length=200)
designation=models.CharField(max_length=100)
email=models.CharField(max_length=100)
role=models.CharField(max_length=10)
#image=models.ImageField()
project=models.CharField(max_length=50)
task=models.CharField(max_length=50)

def __unicode(self):
return self.name

这是我的表格.py
from django import forms
from django.contrib.auth.models import User
from django.forms import ModelForm
from Employee_Details.models import Employee

class RegistationForm(ModelForm):

username=forms.CharField(label=(u'User Name'))
email=forms.EmailField(label=(u'Email Address'))
password=forms.CharField(label=(u'Password'))
password1=forms.CharField(label=(u'Verfy Password'))
name=forms.CharField(label=(u'Name'))
address=forms.CharField(label=(u'Address'))
designation=forms.CharField(label=(u'Designation'))
role=forms.CharField(label=(u'Role'))
#image=models.ImageField()
project=forms.CharField(label=(u'Project'))
task=forms.CharField(label=(u'Task'))

class Meta:
model=Employee
exclude=('user',)

def clean_username(self):
username=self.cleaned_data['username']
try:
User.objects.get(username=username)
except User.DoesNotExist:
return username
raise forms.ValidationError('The username is already taken. Please try with another')

def clean(self):
if self.cleaned_data['password'] !=self.cleaned_data['password1']:
raise forms.ValidationError("The Password did not match. Please try again")
return self.cleaned_data

请有人帮我解决这个问题。我指的是一些视频教程。

最佳答案

您没有 username模型中的字段,它是多余的,因为该字段已经在 User 中。模型:

user=User.objects.create_user(username=form.cleaned_data['username'],email= form.cleaned_data['email'],password=form.cleaned_data['password'])
user.save()

employee=Employee(user=user, email=form.cleaned_data['email'], password=form.cleaned_data['password'])
(...)

关于Django: TypeError: 'username' 是此函数的无效关键字参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15942939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com