2016-09-21 88 views
0

我找不到很多信息/無法將自定義用戶字段添加到django create_user函數中。我有很多字段,不知道如何讓他們進入數據庫,因爲目前這個功能只允許用戶名,密碼,名字和姓氏。我的意見/表格/型號:在django中添加自定義用戶註冊字段

觀點:

def create_account(request): 
    form = CreateAccountForm(request.POST) 
    if form.is_valid(): 
     username = form.cleaned_data['username'] 
     password = form.cleaned_data['password'] 
     password2 = form.cleaned_data['password2'] 
     first_name = form.cleaned_data['first_name'] 
     last_name = form.cleaned_data['last_name'] 
     gender = form.cleaned_data['gender'] 
     medication = form.cleaned_data['medication'] 
     medical_history = form.cleaned_data['medical_history'] 
     DOB = form.cleaned_data['DOB'] 
     email = form.cleaned_data['email'] 
     telephone = form.cleaned_data['telephone'] 
     address = form.cleaned_data['address'] 
     city = form.cleaned_data['city'] 
     state = form.cleaned_data['state'] 
     postcode = form.cleaned_data['postcode'] 

     if password == password2: 
      if (password_verification(password)) == 3: 
       if (username_verification(username)) == False: 
        user = User.objects.create_user(username, email, password) 
        user.last_name = last_name 
        user.first_name = first_name 
        user.save() 
        return HttpResponseRedirect('/login') 
       else: 
        return HttpResponseRedirect('/create_account') 
      else: 
       return HttpResponseRedirect('/create_account') 
     else: 
      return HttpResponseRedirect('/create_account') 
    return render(request, "create_account.html", {'form': form}) 

型號:

class user(models.Model): 
    username = models.CharField(max_length=20) 
    password = models.CharField(max_length=15) 
    password2 = models.CharField(max_length=20) 
    first_name = models.CharField(max_length=20) 
    last_name = models.CharField(max_length=20) 
    gender = models.CharField(max_length=20) 
    medication = models.CharField(max_length=50, blank=True) 
    medical_history = models.CharField(max_length=50,blank=True) 
    DOB = models.CharField(max_length=20) 
    email = models.EmailField(max_length=30) 
    telephone = models.CharField(max_length=20) 
    address = models.CharField(max_length=30) 
    city = models.CharField(max_length=20) 
    state = models.CharField(max_length=20) 
    postcode = models.CharField(max_length=30) 

形式:

class CreateAccountForm(forms.Form): 
    username = forms.CharField() 
    password = forms.CharField(widget=forms.PasswordInput) 
    password2 = forms.CharField(widget=forms.PasswordInput) 
    first_name = forms.CharField() 
    last_name = forms.CharField() 
    gender = forms.CharField() 
    medication = forms.CharField() 
    medical_history = forms.CharField() 
    DOB = forms.CharField() 
    email = forms.CharField() 
    telephone = forms.CharField() 
    address = forms.CharField() 
    city = forms.CharField() 
    state = forms.CharField() 
    postcode = forms.CharField() 

如果有人知道如何添加額外的字段到數據庫我會非常感激!

回答

1

如果你想擴展你的用戶,你不能創建用戶名爲char字段的模型。只需按照此Django Docs

相關問題