gpt4 book ai didi

django - Getting __init__() got an unexpected keyword argument 'instance' with CreateView of Django

转载 作者:行者123 更新时间:2023-11-28 19:36:08 24 4
gpt4 key购买 nike

一些细节:

Request Method: GET
Request URL: http://localhost:8080/user/create
Django Version: 1.5.1
Exception Type: TypeError
Exception Value: ____init____() got an unexpected keyword argument 'instance'
Exception Location: /place/venv/local/lib/python2.7/site-packages/django/views/generic/edit.py in get_form, line 35
Python Executable: /place/venv/bin/python
Python Version: 2.7.3

View .py

class UserCreateView(CreateView):
model = models.User
form_class = forms.UserForm

网址.py

url(r'^user/create$', UserCreateView.as_view(), name='user_create'),

表格.py

class UserForm(forms.Form):
GROUP_CHOICES = [(-1, '[Choose]')]
GROUP_CHOICES += [(group.id, group.name.capitalize()) for group in auth.models.Group.objects.all()]

email = forms.EmailField(
label='Email',
widget=forms.TextInput(attrs={'placeholder': 'Email'})
)
first_name = forms.CharField(
label='First Name',
widget=forms.TextInput(attrs={'placeholder': 'First Name'})
)
last_name = forms.CharField(
label='Last Name',
widget=forms.TextInput(attrs={'placeholder': 'Last Name'})
)
password = forms.CharField(
label='Password',
widget=forms.PasswordInput(attrs={'placeholder': 'Password'})
)
password_validation = forms.CharField(
label='Repeat Password',
widget=forms.PasswordInput(attrs={'placeholder': 'Repeat Password'})
)
mobile_number = forms.CharField(
label='Mobile Number',
widget=forms.TextInput(attrs={'placeholder': 'Mobile Number'})
)
office_number = forms.CharField(
label='Office Number',
widget=forms.TextInput(attrs={'placeholder': 'Office Number'})
)
group = forms.ChoiceField(
label='Group',
choices=GROUP_CHOICES
)

def clean_password_validation(self):
if self.cleaned_data['password'] == self.cleaned_data['password_validation']:
return self.cleaned_data['password_validation']
else:
raise forms.ValidationError('Passwords don\'t match')

def clean_group(self):
if self.cleaned_data['group'] != -1:
return self.cleaned_data['group']
else:
raise forms.ValidationError('Please, choose a group')

模型.py

class User(models.Model):
user = models.OneToOneField(auth.models.User)
mobile_number = models.CharField(max_length=64)
office_number = models.CharField(max_length=64)

最佳答案

我怀疑 UserForm 类应该是模型形式。您可能想要更改字段,但它应该从 `ModelForm.

因此将表单定义更改为

class UserForm(forms.ModelForm):
class Meta:
model = User
fields = [...] # list of fields you want from model

#or define fields that you want.
....

关于django - Getting __init__() got an unexpected keyword argument 'instance' with CreateView of Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16079299/

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