0

每次我填写表格以注册用户时,该过程都会停止,因为 last_login 和 date_joined 需要自动设置,或者我可以在哪里添加它们才能正常注册?视图.py

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

表格.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
4

1 回答 1

2

尽管您没有添加有关该问题的一些重要信息(例如 Employer 的模型),但您的问题可能是您在此行保存和 Employer 时:

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

你有以下属性:

  • 用户名
  • 密码
  • 电子邮件
  • 地址
  • 移动的

如果您的问题是需要 last_login 和 date_joined,则应在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_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'
于 2012-04-20T20:01:17.550 回答