Расширение структуры комментариев Django с пользователями Django и пользовательским профилем пользователя
Я использую Django v1.4.
Я посмотрел на исходный код django.contrib.django.comments
и заметил, что Comment
класс имеет необязательный user
поле, которое является внешним ключом для Джанго User
, Я также продлил User
с моим собственным UserProfile
который имеет user_type
поле (используя официальный рекомендуемый подход).
Я хочу разместить комментарии для каждого рабочего задания, но разрешить только определенные 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 о настройке инфраструктуры комментариев в качестве примеров.