Я использую Django v1.4.
Я посмотрел на исходный код django.contrib.django.comments
и заметил, что класс Comment
имеет необязательное поле user
, которое является внешним ключом для User
Джанго. Я также расширил User
своим собственным UserProfile
с полем user_type
(используя официальный рекомендованный подход 1011 *).
Я хочу размещать комментарии для каждого рабочего задания, но разрешаю только определенным user_type
оставлять комментарии. Поэтому сейчас я думаю о расширении Comment
для выполнения 2 вещей:
- Комментировать могут только зарегистрированные пользователи. Поэтому
Comment.user
должен быть обязательным.
- Только определенные
user_type
могут оставлять комментарии.
Я знаю, что, вероятно, мне нужно создать свой собственный класс и наследовать Comment
, но у меня есть несколько вопросов по дизайну:
- Должен ли я оставить все необязательные поля
Comment
(user_name
, user_email
, user_url
и т. Д.) Нетронутыми? И если да, я должен добавить их с информацией из User
? Я чувствую, если я добавлю их, то это нарушает нормализацию данных.
- Как ограничить комментарии только определенными
UserProfle.user_type
? Я понимаю, что комментарии загружаются в шаблоны, так как мне контролировать, если в шаблоне есть блоки if
- then
? Это, кажется, нарушает дизайн модели MVC (я чувствую, что ограничение разрешений должно идти в views.py
.
Будем весьма благодарны за любые советы, предложения и рекомендации. Заранее спасибо! До сих пор я использовал документацию Django о настройке структуры комментариев в качестве примеров.