Поле ForeignKey с основными отношениями - PullRequest
0 голосов
/ 06 декабря 2011

У меня есть две таблицы в моей базе данных (django: модели в моем приложении) следующим образом:

class Model1(models.Model):
    name = models.CharField()
    #etc....

class Model2(models.Model):
    link = models.ForeignKey(Model1)

У каждой Model1 может быть много экземпляров Model2, связанных с ней, но Model2 может быть связана только с однойModel1 - базовое отношение «один ко многим».

Моя проблема заключается в следующем: мне нужно, чтобы каждая Model1 имела первичную Model2, то есть одну из связанных с ней Model2 необходимо каким-то образом пометить как «первичную».

Это мои мысли на данный момент: я должен сделать это с

  1. Булевым полем на Model2, которое говорит, является ли оно первичным, а затем проверкой на уровне приложения, который говорит только одну Model2 наВ Model1 это поле может иметь значение True или
  2. Поле ForeignKey в Model1, называемое «primary_model2», которое ссылается на экземпляр Model2, с проверкой на уровне приложения, которая говорит, что только Model2, связанная с Model1, может быть его основным

Есть идеи ??Я отчасти в тупике.Заранее спасибо!

1 Ответ

1 голос
/ 06 декабря 2011

Я бы пошел с логическим значением на Model2. Очень просто сделать переопределение сохранения, которое установило бы любые другие экземпляры Model2, связанные с Model1, как false.

...