contenttypes フレームワークに関する Django ドキュメントを何度か調べましたが、プロジェクトで一般的な関係を実装するのに十分なほどよく理解していません。この問題に関するオンラインの例やチュートリアルを探しましたが、1 つも見つかりません。私をばかだと呼んでください、しかし、私はこれについて助けが必要です(単にドキュメントにリンクすることで答えないでください). オンラインでのリソースの不足に基づいて、この質問に完全な例で答えると、あなたの答えは django の一般的な関係に関するこれまでのオンラインで最も役立つ例になると思います (おまけ!)。
だから、私の質問は: 誰かがモデルの簡単な例と、一般的なモデルのインスタンスと対話する方法を示す数行のコードを示すことができますか?
インスピレーションとして、これは非常に一般的な状況であると私が信じているものです。
サイトには、ほとんど同じように扱われるメディア アイテムがありますが、わずかに異なります。たとえば、画像と動画のアイテムがあり、ユーザーがアイテムに「いいね」したり、アイテムに「コメント」したりできるとします。いいねやコメントは、画像または動画アイテムに投稿されたかどうかに関係なく、同じように扱われるべきです。したがって、ユーザーのアルバム内の画像またはビデオを表示するための ItemView がある場合、次の種類の呼び出しが可能になります:mediaitem.comments.all()
またはlen(mediaitem.likes.all())
またはcomment.user_who_commented
、それがどの種類のメディア アイテム (画像またはビデオ) であるかを知る必要はありません。
これには6 つのモデルが必要になると思います。
- 抽象
MediaItem
クラス - 2 つの異なるタイプのメディア アイテム:
ImageItem
とVideoItem
- 抽象
MediaItemActions
クラス - メディア アイテムに対して実行できる 2 種類のアクション:
Like
およびComment
この Django 機能の使用方法を知っている場合は、完全な例を示してください! 非常に強力なツールになると思いますので、自分のアプリケーションで使用したいと思っています。明確であればあるほど良い。