Django - построение модели (профиль пользователя или отдельная модель) - PullRequest
0 голосов
/ 20 июля 2011

Фразы названия могут быть немного запутанными.У меня есть приложение, в котором есть пользователи с разными уровнями разрешений (администратор и не администратор).

Я не был уверен, какая из следующих конструкций предпочтительнее: просто перейдите с User_Profile и добавьте поле администратора или создайте две модели (один для администратора и один для)

class User_Profile(models.Model):       
    user=models.ForeignKey(User, unique=True)
    employer=models.ForeignKey(Company,blank=True)
    admin=models.BooleanField(default=False)
    phone=models.CharField(blank=True)

Является ли это предпочтительным для создания отдельной таблицы для администраторов, которая просто ссылается на пользователя и работодателя через ForeignKeys?Мои представления будут проверять каждого пользователя на статус администратора, поэтому я был обеспокоен тем, что запросы к большой таблице User_Profile снова и снова могут стать дорогими.

Вероятно, не на стадии оптимизации, но мне просто интересно узнать о наилучшей практике.

1 Ответ

1 голос
/ 20 июля 2011

Я бы порекомендовал встроенные пользовательские разрешения Django для любой из этих опций: https://docs.djangoproject.com/en/dev/topics/auth/#methods

Вот краткое руководство, которое поможет вам начать: http://parand.com/say/index.php/2010/02/19/django-using-the-permission-system/

...