私はDjango v1.4を実行しています。
のソース コードを調べたところ、このクラスにはDjango の への外部キーであるオプションのフィールドがあるdjango.contrib.django.commentsことに気付きました。また、フィールドを持つ自分自身を拡張しました(公式の推奨アプローチを使用)。CommentuserUserUserUserProfileuser_type
すべての作業指示書にコメントを付けたいのですが、特定の人だけがuser_typeコメントを投稿できるようにします。したがって、現在、私はComment2つのことを行うために拡張することを考えています:
- ログインしたユーザーのみがコメントを投稿できます。したがって
Comment.user、必須にする必要があります。 user_typeコメントを投稿できるのは特定のユーザーのみです。
おそらく独自のクラスを作成して継承する必要があることはわかっていますCommentが、設計についていくつか質問があります。
Comment(user_name、user_email、user_urlなど)のすべてのオプション フィールドをそのままにしておく必要がありますか? もしそうなら、からの情報でそれらを追加する必要がありUserますか? それらを追加すると、データの正規化に違反する気がします。- 特定の のみでコメントを制限するにはどうすればよい
UserProfle.user_typeですか? コメントがテンプレートに読み込まれることは理解していますが、テンプレートにif-thenブロックがあるかどうかをどのように制御すればよいですか? これは MVC モデルの設計に違反しているようです (パーミッションの制限はviews.py.
ヒント、提案、参考資料をいただければ幸いです。前もって感謝します!これまで、コメント フレームワークのカスタマイズに関する Django のドキュメントを例として使用してきました。