我很好奇,看看model = User
行在我的forms.py中做了什麼,所以我決定評論它。其結果是這樣的錯誤:ModelForm沒有指定模型類Django
ModelForm has no model class specified.
,它是強調了對views.py
args['form'] = MyRegistrationForm()
45線我還是不太清楚model = User
如何發揮在我的自定義用戶註冊成卷。 (我一直在關注教程)。我想知道如果有人能簡單地向我解釋這整個過程,爲什麼model = User
需要
我的猜測是,該模型現在是一個User
對象。另外args['form'] = MyRegistrationForm()
需要是模型對象,否則代碼將崩潰。這就像我的假設一樣。
我views.py:
from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.contrib import auth
from django.core.context_processors import csrf
from forms import MyRegistrationForm
def register_user(request):
if request.method == 'POST':
form = MyRegistrationForm(request.POST) # create form object
if form.is_valid():
form.save()
return HttpResponseRedirect('/accounts/register_success')
args = {}
args.update(csrf(request))
args['form'] = MyRegistrationForm()
print args
return render(request, 'register.html', args)
我forms.py
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
class MyRegistrationForm(UserCreationForm):
email = forms.EmailField(required = True)
first_name = forms.CharField(required = False)
last_name = forms.CharField(required = False)
birthday = forms.DateField(required = False)
class Meta:
#model = User
fields = ('email', 'username', 'password1', 'password2', 'last_name', 'first_name', 'birthday') # set up ordering
def save(self,commit = True):
user = super(MyRegistrationForm, self).save(commit = False)
user.email = self.cleaned_data['email']
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.birthday = self.cleaned_data['birthday']
if commit:
user.save()
return user