Могу ли я потом делать выборку через эту функцию get_profile() типа
u = Users.objects.filter(get_profile(? или меня не туда несет, это же
функция на уровне ORM
и второй, при создании юзера надо будет делать что-то типа визарда?
(ненавижу винду и слово визард)). с начала заполняем форму User а потом
уже к профайлу..
вопросы наверное слишком глупые, но я реально еще не юзал auth, первый
серьезный проект
18.11.2011 19:55, マギクアルセニ пишет:
> Возможно, вам будет удобнее сделать даже так
>
> from django.contrib.auth.models import User
>
> class UserProfile(models.Model):
> ROLE_CHOICES = (
> ('A', 'Administrator'),
> ('M', 'Manager'),
> ('C', 'Client'),
> )
>
> user = models.OneToOneField(User)
>
> role = models.CharField(max_length=1, choices=ROLE_CHOICES)
>
> # Здесь поля для всех трёх типов
>
> Но в этом случае стоит ещё сделать валидацию — чтобы для
> администратора, например, не заполнялось поле, которое должно
> заполняться только для менеджеров.
>
> В настройках при этом указывается:
>
> AUTH_PROFILE_MODULE = 'accounts.UserProfile'
>
> (Если модель находится в приложении accounts.)
>
> И далее, чтобы получить такой профайл, вы можете получать объект User
> и вызывать у него метод get_profile().
>
> 2011/11/18 マギクアルセニ<aruseni.magiku@gmail.com>:
>> from django.contrib.auth.models import User
>>
>> class Admin(models.Model):
>> # Обязательное поле
>> user = models.OneToOneField(User)
>>
>> # Поля специально для пользователей-администраторов
>> accepted_eula = models.BooleanField()
>> favorite_animal = models.CharField(max_length=20, default="Dragons.")
>>
>> Подробнее тут:
>> https://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users
>>
>> Название класса лучше всего делать именно Admin, а не Admins, в
>> единственном числе. Это что-то вроде стандарта, и когда Django
>> автоматически склоняет названия моделей (хотя это можно и настроить)
>> для использования в административном интерфейсе, то предполагает, что
>> названия моделей записываются именно в единственном числе.
>>
>> 2011/11/18 Дмитрий<frantic.rocker@gmail.com>:
>>> Здарова мужики! Подскажите, как правильнее создать модели юзеров.
>>>
>>> Есть три роли - админ, менеджер, клиент. На каждую роль свои поля для
>>> заполнения.
>>> Я в этом деле дилетант поэтому в голове вырисовывается следующее:
>>>
>>> class Admins(models.Model):
>>> first_name..
>>> last_name..
>>> login..
>>> pass..
>>> ...тут одни поля
>>>
>>> class Managers(models.Model):
>>> first_name..
>>> last_name..
>>> login..
>>> pass..
>>> ...тут другие
>>>
>>> class Clients(models.Model):
>>> first_name..
>>> last_name..
>>> login..
>>> pass..
>>> ...ну вы поняли
>>>
>>> и все. тут приходит ступор, а как же потом авторизовываться?
>>> думаю, прифигачить<select> с выбором роли и там уже механизм более-менее
>>> понятен (хотя не факт).
>>>
>>> Но затем появляется еще одна мысль, а нафига тогда джанговская авторизация?
>>> неужели ее нельзя использовать в данном случае?
>>>
>>> смутно понимаю что пишу но в голове что-то вроде:
>>>
>>> class Admins(User):
>>> тут одни поля
>>>
>>> class Managers(User):
>>> тут другие итд..
>>>
>>> В общем не судите строго за вероятно неважно поставленную задачу, только с
>>> работы, в голове каша.
>>>
>>>
>>>
Комментариев нет:
Отправить комментарий