私はDjango 1.2を使用しています。以下に示すように、私は、3つのフィールドでモデルを作成したいと思います:Django:モデル内の一意のフィールドの最大数を設定する
class Also_Viewed(models.Model):
page = models.ForeignKey(Page)
also_page = models.ForeignKey(Page)
rank = models.IntegerField()
class Meta:
unique_together = ('page', 'also_page')
しかし、それぞれ独自のページフィールドのために、私は最大量(24を避ける)にテーブルの行数を制限したいです。テーブル内の最大24 occurancesため
したがって、たとえば、行の次のタイプは大丈夫だろう...
(Page_A, Page_x, 3)
(Page_A, Page_y, 21)
...
(Page_A, Page_z, 45)
...。
はどのようにDjangoのmodels.pyファイルでこの制約を設定することをお勧めしますか?
私が考えることができる唯一の方法は、別のフィールドを追加し、choiceオプションをわずか24のタプルの反復可能に設定することです。これはハックのように感じますが、実際には有効な解決策ですか?または、よりエレガントで効率的なソリューションについて考えてみませんか?
私はまた、そのページとalso_pageが異なるオブジェクトであることを確認したいと思います。しかし、私はこの方法に近づく方法を知らない。
それが本当に高く評価され、あなたの助けをありがとうございました!
ありがとうございました。 –