Что лучший способ состоит в том, чтобы иметь различные профили для различных видов пользователей в django?

AC_CONFIG_HEADERS ( документация ) выводит сгенерированный Autoconf заголовочный файл с информацией о пакете и среде, используемой для его компиляции.

Обычно этот файл называется config.h, но вы, кажется, назвали его shell.h, который переписал другой файл shell.h, который вы создали вручную, я полагаю?

Если это так, то Решением будет использование другого имени в AC_CONFIG_HEADERS.

6
задан Blair Conrad 24 March 2009 в 17:57
поделиться

2 ответа

С Django 1.1, который является в настоящее время в бета-версии, я реализовал бы модель прокси.

class MyUser(User):

  class Meta:
    proxy = True

  def get_profile(self):
    if self.role == 'professor':
      return ProfessorProfile._default_manager.get(user_id__exakt=self.id)
    elif self.role == 'student':
      return StudentProfile._default_manager.get(user_id__exakt=self.id)
    else:
      # staff
      return None

get_profile нужен кэширующийся код из оригинала и так далее. Но по существу Вы могли сделать что-то как этот.

С Django 1.0.x Вы могли реализовать производные классы на основе Пользователя, но это могло бы взломать код в других местах. Для материала как этот я люблю прокси-классы, которые просто добавляют функциональность Python, не изменяя модели базы данных.

7
ответ дан 17 December 2019 в 00:14
поделиться

У Вас есть рад http://docs.djangoproject.com/en/dev/topics/auth/#auth-profiles?

Это - стандартное решение.

0
ответ дан 17 December 2019 в 00:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: