私はプロジェクトを整理したままにしておきたいので、アプリケーションに分割してください。 BlogPost
モデルのブログアプリを想定します。 これに、Tag
アプリを追加します。このアプリには、Postへの外部キーを持つタグモデルがあります。 get_tags()
というメソッドをBlog
クラスに記述すると、それは循環参照になります。 それは悪いデザインですか?たぶん私はブログにそのようなメソッドを書くべきではない、あるいはそのような関連するモデルは単に同じアプリ内にあるべきですか?
私は、私の(大きな)プロジェクトの編成方法を学ぼうとしています。私はここでのポイントは、あなたがのForeignKeyかのManyToManyFieldを作成するときにDjangoが自動的に逆引き参照を作成することですDjangoアプリの構造体と循環参照
答えて
を、Djangoアプリケーションの概念について多くを読んだSTIL右の方法を発見していません。 、ビューにポストのタグを生成していると仮定すると、
from django.db import models
from Blog.models import BlogPost
class Tag(models.Model):
Post = models.ForeignKey(BlogPost,related_name="tags")
今あなたができる
ブログ投稿モデル
from django.db import models
class BlogPost(models.Model):
title = models.CharField(_('title'), max_length=200)
slug = models.SlugField(_('slug'), unique_for_date='publish')
author = models.ForeignKey(User, blank=True, null=True)
body = models.TextField(_('body'),)
publish = models.DateTimeField(_('publish'), default=datetime.datetime.now)
created = models.DateTimeField(_('created'), auto_now_add=True)
タグモデル:あなたのモデルは次のようにしていると仮定すると、基本的にはblogpost.tags_set
を呼び出して投稿のすべてのタグを取得します。ブログポストはのモデルインスタンスです。
特定のタグだけを指定したい場合は、特定の日付から最新のものを言うでしょうか?私はそれをメソッドに書くべきですか?このようなモデルをアプリに分割するのが正しいとすれば、デザインに関することです。私は通常、 'blogpost.tags_set.filter(created = date)'やそのようなものである – user3599803
@ user3599803そして、あなたのモデルを別のアプリケーションに分割するのはまあまあです。さまざまなアプリケーションでモジュール化され、正確に特定することができるようになるため、実際には長期的には説明に役立ちます。 – r3ign
@ user3599803のようなものをいくつか読んだ後に読むべきです。 – r3ign
- 1. 循環参照パッケージ - Python/Django
- 2. 循環依存関係 - 構造体と関数ポインタの相互参照
- 3. 循環参照
- 4. エンティティフレームワーク、コードファーストモデリングと循環参照
- 5. Java循環参照
- 6. クラス循環参照
- 7. 外部キーを解決するための循環参照と循環参照
- 8. Segfaultsと構造体配列の参照
- 9. Excel VBAの循環参照
- 10. モジュール間の循環参照?
- 11. DBの循環参照
- 12. 循環参照の検索
- 13. Protostuff循環参照のRuntimeSchema?
- 14. 循環参照のインスタンス
- 15. Entity Frameworkの循環参照
- 16. Javascript /ガベージコレクタの循環参照
- 17. Microsoft Moles:循環参照エラー?
- 18. jQuery DataTables循環参照エラー
- 19. ストライプ - JSON循環参照
- 20. 春@ResponseBody JSON循環参照
- 21. "循環属性グループ参照"
- 22. ビジネスエンティティ、データアクセスレイヤー - 循環参照
- 23. スカラPlayJson循環参照
- 24. ASP C#ユーザーコントロール循環参照
- 25. ジャクソンシリアル化循環参照スタックオーバーフローエラー
- 26. 可能な循環参照?
- 27. 循環参照(再び...)
- 28. ジキルYAML循環参照
- 29. Javascript循環参照例外
- 30. Hibernate @onetomany Gsonとの循環参照エラー
モデルのサンプルをご用意ください。 – Wtower
djangoは既に逆キーの参照を提供しているので、その悪いデザインがあるかどうかはわかりません – Sayse