2010-07-06 14 views
5

Estoy usando Django 1.2 y quiero tener dos tipos de usuarios (uno para empresas y otro para consultores). Usaré un objeto en mi modelo (algo así como un booleano para is_company o is_consultant) o los grupos de Django para distinguirlos, dependiendo de cuál sea más fácil para este problema. Supongo que no sería un gran problema si no fuera un novato total;)¿Cómo hacer múltiples tipos de usuario cuando se registra?

Estoy usando django-registration para mi back-end de autenticación, y tendré un formulario separado en mi página web para cada usuario tipo (compañía contra consultor). No creo que sea mejor crear dos vistas diferentes que sean casi idénticas para los dos casos, así que me pregunto cuál es la mejor manera de identificar/registrar a los usuarios que se registraron como cualquiera de los dos tipos.

Gracias por su ayuda.

Respuesta

2

¿Desea que el usuario elija si es un consultor o una empresa al registrarse? Si es así, puede crear su propio formulario subclasificando el RegistrationForm y luego pasando su nuevo formulario a los parámetros para django-registration (Lea el documento sobre cómo hacerlo).

Para crear una subclase del formulario y agregar el campo adicional deberías hacer algo así:

from registration.forms import RegistrationForm 

USER_TYPES = (
    ('consultant', 'Consultant'), 
    ('company', 'Company'), 
) 

class MyRegistrationForm(RegistrationForm): 
    user_type = forms.ChoiceField(choices=USER_TYPES) 

a partir de entonces, se debe coger la señal y hacer lo que necesita con los datos del formulario django-registration has great documentation

espero que eso sea lo que lookign para.

+0

Bartek, gracias por su ayuda. Esperaba tener dos "rutas" de registro; DOS BOTONES con algo así como 'consultores, comience aquí' y 'empresas, comience aquí', pero UNA VISIÓN. Estaba haciendo que cada uno llevara a la persona a una vista separada. Esto no me pareció django-y. Me gustaría una vista que averigüe qué botón se presionó y selecciona el tipo de usuario o el grupo basado en eso. Intenté usar el valor o el nombre del botón, y lo busqué en la información request.POST, pero no pude encontrarlo. – Tim

1

En lugar de buscar en el POST, puede pasar la información en la cadena de consulta. Así que un "botón" (que en realidad es sólo un enlace) vincula a /form?type=consultant, y los otros enlaces a /form?type=company y luego lo pueda levantar de la información de GET

Cuestiones relacionadas