2016-04-17 4 views
0

Есть ли способ сохранить мою регистрацию пользователя в другой таблице из базы данных?Django - сохранить пользователя в другой таблице

Я не хочу смешивать AdminUsers с CommonUsers (Все учебники я видел, они сохраняют регистрацию в AUTH_USER)

Причины:

  • CommonUsers имеют разные столбцы и информация
  • CommonUsers могут загружать контент
  • AdminUsers проверить содержание, загруженное с помощью CommonUsers и убедитесь, что нет ничего неуместного

Что мне нужно использовать? модели? ModelForm? формы?

ответ

-1

Лучшим решением для вас является подкласс модели User и добавление дополнительных столбцов, необходимых для вашего CommonUsers. Ваш код будет, вероятно, в конечном итоге выглядит примерно так:

models.py

from django.contrib.auth import models 
from django.db.models import * 

class CommonUser(models.User): 
    custom_field1 = CharField(max_length=255, null=True) 
    custom_field2 = CharField(max_length=255, null=True) 

Link to docs

+0

бы не то, что дает мне ошибку? с требуемым заполнением (не нулевым), например: мой AdminUser требует дату рождения и не может быть нулевым, но когда регистр CommonUser не сообщается, дата рождения не задана. Итак, что произойдет, если регистрация действительна, дата рождения, поданная для commonUser, получает значение по умолчанию? – BrianCas

+0

Вы явно должны подклассифицировать 'auth_user' для вашего AdminUser, так что AdminUser и CommonUser являются родительскими классами, а не родителями и дочерними. Как вы добавили поле даты рождения в свой AdminUser? В качестве альтернативы вы можете указать значение по умолчанию для этих полей, таких как дата рождения, которые требуются только AdminUser. Но первое предлагаемое мной решение - это, безусловно, более правильный способ сделать это. – ygesher

Смежные вопросы