2011-03-30 11 views
12

Necesito que el campo de correo electrónico en el modelo de usuario de Django sea obligatorio. No es obvio para mí cómo hacer eso. Sugerencias bienvenidas. Actualmente estoy usando:Campo de correo electrónico del modelo de usuario de Django: cómo hacerlo obligatorio

from django.contrib.auth.forms import UserCreationForm 

para mi forma de creación de usuarios, y combinando esto con mi propia costumbre UserProfileCreateForm

Ian

+0

Usted debe aceptar su respuesta. – dragostis

Respuesta

16

usted debería ser capaz subclase formulario de inscripción proporcionado y anular las propiedades de un campo en la clase Meta.

from django.contrib.auth.forms import UserCreationForm 

# Not sure about the syntax on this one. Can't find the documentation. 
class MyUserCreationForm(UserCreationForm): 

    class Meta: 
     email = { 
      'required': True 
     } 


# This will definitely work 
class MyUserCreationForm(UserCreationForm): 

    def __init__(self, *args, **kwargs): 
     super(MyUserCreationForm, self).__init__(*args, **kwargs) 

     self.fields['email'].required = True 
+1

La primera solución no funcionó para mí. La segunda solución funcionó a la perfección. Muchas gracias. –

+0

Esto debería establecerse como la respuesta correcta, supongo ... – vladblindu

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


class MyUserForm(forms.ModelForm): 

    email = forms.CharField(max_length=75, required=True) 

    class Meta: 

     model = User 
     fields = ('username', 'email', 'password') 
Cuestiones relacionadas