2009-09-05 18 views
10

Estoy usando Django-Registration y el formulario solo tiene 3 campos (Nombre de usuario, Correo electrónico, Contraseña y Re-contraseña), pero ¿por qué no puedo agregar el apellido y el nombre?Django, registrar usuario con nombre y apellido?

En el Formulario de todo está bien, pero el modelo usuario simplemente acepta 3 argumentos:

new_user = User.objects.create_user(username, email, password) 

pero ¿por qué no puedo hacer eso:

new_user = User.objects.create_user(username, email, password, first_name ,last_name) 

La documentación de Django no dice nada sobre solo 3 argumentos; todos los tutoriales en la red solo usan 3 argumentos ...

¿Por qué? ¿O cómo haré uso del nombre y apellido?

Respuesta

21

lo hice:

new_user = User.objects.create_user(username, email, password) 
new_user.is_active = False 
new_user.first_name = first_name 
new_user.last_name = last_name 
new_user.save() 
+3

se ha perdido el new_user.save() al final. – Pravel

3

Sé que has encontrado una forma de evitar, pero de esta manera a continuación también le puede interesar. Esto se debe a que requiere argumentos de palabras clave (que se pasarán al método del usuario __init__). https://docs.djangoproject.com/en/1.6/ref/contrib/auth/#manager-methods

User.objects.create_user("user1", "[email protected]", "pwd", first_name="First", last_name="Last") 
+1

Esto se siente un poco más limpio. Y ahora sé la diferencia entre ** kwargs y * args. – teewuane

Cuestiones relacionadas