オブジェクトが一意であることを確認し、ユーザーがそれを保存しようとしたときにエラーをスローしたい (たとえば、管理者を介して) そうでない場合は? 一意とは、オブジェクトの属性の一部が他のオブジェクトの値と同じ値を保持している可能性があることを意味しますが、それらがすべて別のオブジェクトの値と同一であるとは限りません。
私が間違っていなければ、私はこれを次のように行うことができます:
class Animal(models.Model):
common_name = models.CharField(max_length=150)
latin_name = models.CharField(max_length=150)
class Meta:
unique_together = ("common_name", "latin_name")
ただし、モデルをリファクタリングするたびに (たとえば、新しいフィールドを追加したり、既存のフィールドの名前を変更したりするため)、unique_togetherに割り当てられた括弧内のフィールドのリストも編集する必要があります。単純なモデルであれば問題ありませんが、大規模なモデルではリファクタリングが非常に面倒になります。
unique_together括弧内にフィールド名のリストを繰り返し入力する必要がないようにするにはどうすればよいですか? モデルのフィールドのリストを変数に渡し、代わりにその変数をunique_togetherに割り当てる方法はありますか?