Python 每次我试图将用户添加到数据库时,Django中的date_joined和last_login required错误
每次我填写表格注册用户时,流程都会停止,因为需要最后一次登录和加入日期。是否自动设置,或者我可以将其添加到哪里才能正常注册?? Views.pyPython 每次我试图将用户添加到数据库时,Django中的date_joined和last_login required错误,python,django,Python,Django,每次我填写表格注册用户时,流程都会停止,因为需要最后一次登录和加入日期。是否自动设置,或者我可以将其添加到哪里才能正常注册?? Views.py import datetime @csrf_exempt def EmployerRegistration(request): print 'before' if request.user.is_authenticated(): return HttpResponseRedirect('/profile/')
import datetime
@csrf_exempt
def EmployerRegistration(request):
print 'before'
if request.user.is_authenticated():
return HttpResponseRedirect('/profile/')
if request.method == 'POST':
form = SignUpForm(request.POST)
print form
print"then"
print form.errors
if form.is_valid():
print 'hello'
employer =Employer.objects.create(username=form.cleaned_data["username"],password= form.cleaned_data['password'],first_name=form.cleaned_data['first_name'],last_name=form.cleaned_data['last_name'],email=form.cleaned_data['email'],address=form.cleaned_data['address'],mobile=form.cleaned_data['mobile'])
employer.save()
return HttpResponseRedirect('/login/')
else:
print 'notvalid'
return render_to_response('Sign_up_Employer.html',{'form':form}, context_instance=RequestContext(request))
#return render_to_response('/lol/',{'form':form}, context_instance=RequestContext(request))
last_login
else:
#user is not submitting show them the registeration form
print 'not post'
form= SignUpForm()
context = {'form':form}
return render_to_response('Sign_up_Employer.html',context,context_instance=RequestContext(request))
form.py
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from django import forms
from django.forms import ModelForm
from shoghlanah.models import *
import datetime
class SignUpForm(ModelForm):
username = forms.CharField(label=(u'Username'))
first_name = forms.CharField(label=(u'First name'))
last_name = forms.CharField(label=(u'Last name'))
address = forms.CharField(label=(u'Address'))
email = forms.EmailField(label=(u'Email Address'))
password = forms.CharField(label=(u'Password'),widget=forms.PasswordInput(render_value=False))
password1 = forms.CharField(label=(u'Verify Password'),widget=forms.PasswordInput(render_value=False))
mobile = forms.IntegerField(label=(u'Mobile'))
## is it valid to put the here??
last_login =datetime.datetime.now()
date_joined =datetime.datetime.now()
class Meta:
model = Employer
## check whats Exclude !!!!
exclude = ('user',)
def clean_username(self):
username = self.cleaned_data['username']
try:
User.objects.get(username=username)
raise forms.ValidationError("That username already exists.Please select another")
except User.DoesNotExist:
return username
虽然您尚未添加有关该问题的一些重要信息(如雇主模型),但您的问题可能是当您在此行中保存和使用雇主时:
employer =Employer.objects.create(username=form.cleaned_data["username"],password= form.cleaned_data['password'],first_name=form.cleaned_data['first_name'],last_name=form.cleaned_data['last_name'],email=form.cleaned_data['email'],address=form.cleaned_data['address'],mobile=form.cleaned_data['mobile'])
您具有以下属性:
- 用户名
- 密码
- 名字
- 姓
- 电子邮件
- 地址
- 流动的
create()
方法中添加:
import datetime
#last_login=datetime.datetime.now(), date_joined=datetime.date.now()
像这样:
employer =Employer.objects.create(last_login=datetime.datetime.now(),date_joined=datetime.datetime.now(),username=form.cleaned_data["username"],password= form.cleaned_data['password'],first_name=form.cleaned_data['first_name'],last_name=form.cleaned_data['last_name'],email=form.cleaned_data['email'],address=form.cleaned_data['address'],mobile=form.cleaned_data['mobile'])
这样可以解决你的问题
更新 由于您使用的是
。is\u valid()
,因此您需要按照以下方式执行。
而不是:
if request.method == 'POST':
form = SignUpForm(request.POST)
print form
print"then"
print form.errors
if form.is_valid():
print 'hello'
你需要:
if request.method == 'POST':
data = request.POST.copy()
data['date_joined'] = datetime.date.today()
data['last_login'] = datetime.datetime.now()
form = SignUpForm(data)
print form
print"then"
print form.errors
if form.is_valid():
print 'hello'
@不幸的是,我的问题没有得到解决suggestions@Guilherem如果form.isvalid()拒绝输入,则未发生任何事情由于上一个日志和日期是必需的,我将它们写在了表单中,但在截取表单后@Guillherme没有发生任何事情。我如何添加它们?我必须将它们添加到表单中。py请您解释一下吗?上一个登录名和加入日期无效。