0

실제로 사용자 이름, 전자 메일, 패스 번호 & 확인을 포함하는 등록 양식이 있습니다. 새 필드를 추가하고 싶습니다. Telefono(영어로 전화하기, excuseme)fullname. 내가하려고했던내 등록 양식에 필드 추가하기

그것을 할 수 있지만, 문제가 발생했습니다 : 나는 Telefono 필드가 동일한 문제를 가지고 있다고 생각합니다

'fullname' is an invalid keyword argument for this function 

은. 나는이 필드들을 views.py와 forms.py에 추가한다. 내 구성을 찾아보세요 :

views.py :

from django.shortcuts import render_to_response 
from django.template import RequestContext 
from dracoin.apps.synopticup.models import card 
from dracoin.apps.home.forms import ContactForm,LoginForm,RegisterForm 
from django.core.mail import EmailMultiAlternatives 
from django.contrib.auth.models import User 

from django.contrib.auth import login,logout,authenticate 
from django.http import HttpResponseRedirect 
from django.core.paginator import Paginator, EmptyPage, InvalidPage 

def register_view(request): 
    form = RegisterForm() 
    if request.method == "POST": 
     form = RegisterForm(request.POST) 
     if form.is_valid(): 
      fullname = form.cleaned_data['fullname'] 
      usuario = form.cleaned_data['username'] 
      email = form.cleaned_data['email'] 
      password_one = form.cleaned_data['password_one'] 
      password_two = form.cleaned_data['password_two'] 
      telefono = form.cleaned_data['telefono'] 
      u = User.objects.create_user(fullname=fullname,username=usuario,email=email,password=password_one,telefono=telefono) 
      u.save() 
      return render_to_response('home/thanks_register.html',context_instance=RequestContext(request)) 
     else: 
      ctx = {'form':form} 
      return render_to_response('home/register.html',ctx,context_instance=RequestContext(request)) 
    ctx = {'form':form} 
    return render_to_response('home/register.html',ctx,context_instance=RequestContext(request)) 

forms.py : 사전에

from django import forms 
from django.contrib.auth.models import User 

class RegisterForm(forms.Form): 
    fullname = forms.CharField(label="Nombre completo",widget=forms.TextInput()) 
    username = forms.CharField(label="Nombre de usuario",widget=forms.TextInput()) 
    email = forms.EmailField(label="Correo Electronico",widget=forms.TextInput()) 
    password_one = forms.CharField(label="Password",widget=forms.PasswordInput(render_value=False)) 
    password_two = forms.CharField(label="Confirmar password",widget=forms.PasswordInput(render_value=False)) 
    telefono = forms.RegexField(regex=r'^\+?1?\d{9,15}$', 
           error_message = ("Only celular phone number. Must be entered in the format: '+999999999'. Up to 15 digits allowed.")) 
    def clean_username(self): 
     username = self.cleaned_data['username'] 
     try: 
      u = User.objects.get(username=username) 
     except User.DoesNotExist: 
      return username 
     raise forms.ValidationError('Nombre de usuario ya existe') 

    def clean_email(self): 
     email = self.cleaned_data['email'] 
     try: 
      u = User.objects.get(email=email) 
     except User.DoesNotExist: 
      return email 
     raise forms.ValidationError('Email ya registrado') 

    def clean_password_two(self): 
     password_one= self.cleaned_data['password_one'] 
     password_two= self.cleaned_data['password_two'] 
     if password_one == password_two: 
      pass 
     else: 
      raise forms.ValidationError('passwords no coincidentes') 

apologizeme 내가 뭔가를 간과합니다.

감사합니다.

+2

django 인증 사용자 모델에는 필드 이름 fullname이 없습니다. 여기를 확인하십시오 : https://github.com/django/django/blob/master/django/contrib/auth/models.py#L374. 그러나 get_full_name()은 리턴 타입이 전체 이름을 얻는이 모델의 메소드입니다. – ruddra

+1

완전히 관련이 없지만,'register_view' 전에'def'를 잊어 버렸습니다. 구문 오류가 없으므로 여기에 코드를 붙여 넣었을 때 누락 된 것으로 추측됩니다. – Paco

+0

사실 파코, 내 잘못 붙여 넣기 xD – Jhonny

답변