読者です 読者をやめる 読者になる 読者になる

ほんじゃら堂

めんどくさい仕事をラクにする作業自動化レシピ集

モデルのフィールドを組み合わせで一意にする

django IT系・技術系

djangoは複合キーが使えないらしいので、代わりの機能を探したら
開発版で追加されたunique_togetherというMetaオプションを使えば
良いらしいことが分かった。


例えばあるモデルでユーザーとブックマークの組み合わせを一意にする場合は
こんな感じかな?


models.py

...
class UserBookmarkMap(models.Model):
user = models.ForeignKey(User)
bookmark = models.ForeignKey(Bookmark)
insert_date = models.DateTimeField("作成日")
class Meta:
unique_together = (("user", "bookmark"),)
...


Mysqlで作成したテーブルを見ると、両列の列属性にMULが入っていたので、
うまくいってそう。