私は、主に教育的練習として、ブログエンジンをdjangoに書き込む過程にあり、複数の部分のブログ投稿/シリーズの実装については疑問があります。記事シリーズ/マルチパートブログ投稿を実装する理想的な方法
私はpython3/djangoで作業していますので、私のコードはこのようになりますが、私は主にデータベース構造を適切に実装することに関心があります。この一般的なモデルを考える:
class Article(models.Model):
title = models.Charfield(255)
content = models.TextField()
私の最初のアイデアは、単にシリーズテーブルを追加し、記事にリンクすることです:
class Article(models.Model):
title = models.Charfield(255)
content = models.TextField()
series = models.ForeignKey('Series')
class Series(models.Model):
title = models.Charfield(255)
次ここに来る問題はポストの位置を追跡する方法ですシリーズ長さ(すなわち、2の4)。シリーズエントリーのIDや投稿の公開日を使用することを考えましたが、投稿と同じ順序でそれらが出ることは保証できません。
私は単に記事テーブルにそれを記録することができます。次に、一連の長さのシリーズオブジェクトに.count()を使用して、フィールドから直接記事位置を取得することができます:
class Article(models.Model):
title = models.Charfield(255)
content = models.TextField()
series = models.ForeignKey('Series')
part = models.PositiveIntegerField()
{% if article.series is not None %}
This post as part {{?}} in a {{?}} part series titled {{?}}
View previous post {{?}}, view next post {{}}
{% endif %}
:私は最終的にはちょうどこのように、多少の情報にアクセスするためエーブルされてみたい
class Article(models.Model):
title = models.Charfield(255)
content = models.TextField()
class Series(models.Model):
title = models.Charfield(255)
class ArticleSeriesEntry(models.Model):
article = models.OneToOneField('Article', related_name='series_info')
series = models.ForeignKey('Series', related_name='entries')
part = models.PositiveIntegerField()
:
は、それから私は、各シリーズの資料を反映する行をだ第三のテーブルを作りについて考えました
もっと良い方法があるように感じる。事前に感謝します