Удаление ненужных полей при расширении Django UserCreationForm

Просто начал проникать в Django и застрял при расширении классической UserRegistrationForm. Я следовал этому уроку, и это здорово, но форма HTML в браузере показывает мне поля, которые я не хочу. Я только хочу расширить адрес электронной почты, но хочу добавить имя и фамилию позже.

Обратите внимание, что у меня еще нет CSS, просто хочу посмотреть основную информацию в браузере. Кто-нибудь может объяснить, почему я вижу все другие поля в дополнение к имени пользователя, паролю, паролю2 и электронной почте?

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)

    class Meta:
        model = User
        field = ('username','email','first_name','last_name','password1', 'password2')

def save(self, commit=True)
    user = super(MyRegistrationForm, self).save(commit=False)
    user.email = self.cleaned_data['email'] #validated before committing to database

    if commit:
        user.save()
    return user

views.py

from django.shortcuts import render_to_response #allows you to render a template back to the browser
from django.http import HttpResponseRedirect #allows the browser to redirect to another url
from django.contrib import auth
from django.core.context_processors import csrf # method to stop hackers submitting requests
from fantasymatchday_1.forms import MyRegistrationForm #A user registration form I created that inherits the UserCreationForm

def register_user(request):
        if request.method == 'POST':
           form = MyRegistrationForm(request.POST) #create a form object
           if form.is_valid(): #if the form is valid, save the form
              form.save()
              return HttpResponseRedirect('/register_success')

        args = {}
        args.update(csrf(request))

        args['form'] = MyRegistrationForm()
        #print args
        return render_to_response('register.html', args)

def register_success(request):
    return render_to_response('register_success.html')

register.html

   <h2> Register </h2>

   <form action="/register/" method="post">{% csrf_token %}
   {{form}}

   <input type="submit" value="Register" />

   </form>

Почему все остальные появляются? Любая помощь по этому вопросу будет принята с благодарностью:)

1 ответ

Решение

У вас есть опечатка в вашем MyRegistrationForm"s Meta определение:

field =  ('username','email','first_name','last_name','password1', 'password2')

Так должно быть fields скорее, чем field,

Другие вопросы по тегам