Как сделать несколько типов пользователей при регистрации?

StackOverflow https://stackoverflow.com/questions/3189437

  •  02-10-2019
  •  | 
  •  

Вопрос

Я использую Django 1.2 и хочу иметь два типа пользователей (один для компаний и один для консультантов). Я буду использовать объект в своей модели (что-то вроде логического для IS_COMPANY или IS_CONCULTANT), либо группы Джанго, чтобы различать их-в зависимости от того, что проще для этой проблемы. Я думаю, это не было бы большой проблемы, если бы я не был полным нубом;)

Я использую Django-registration для моего бэкэнда аутентификации, и у меня будет отдельная форма на своей веб-странице для каждого типа пользователя (Company VS Consultant). Я не думаю, что лучше всего создавать два разных представления, которые почти идентичны для двух случаев, поэтому мне интересно, как лучше всего определить/зарегистрировать пользователей, которые подписались как любой из двух типов.

Спасибо за вашу помощь.

Это было полезно?

Решение

Вы хотите, чтобы пользователь выбрал, если он является консультантом или компанией при регистрации? Если это так, вы можете создать свою собственную форму, подкладывая RegistrationForm и затем передавая вашу новую форму в параметры для регистрации django (прочитайте документ о том, как это сделать.)

Для подкласса формы и добавить дополнительное поле, вы бы сделали что -то вроде так:

from registration.forms import RegistrationForm

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

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

С тех пор вы должны поймать сигнал и сделать так, как вам нужно с данными формы Django-registration имеет отличную документацию

Надеюсь, это то, на что вы искали.

Другие советы

Вместо того, чтобы смотреть в пост, вы можете передать информацию в строке запроса. Итак, одна «кнопка» (на самом деле просто ссылка) ссылается на /form?type=consultant, и другие ссылки на /form?type=company И тогда вы можете взять его из информации GET

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top