Можно ли установить два OneToOneFields модели для указания на уникальные экземпляры одной и той же связанной модели? - PullRequest
1 голос
/ 26 февраля 2012

Я пытался создать модель «Контейнер тегов», в которой хранятся теги.Затем я попытался подключить такой контейнер с OneToOneFields к модели, где он мне нужен:

from tagging.fields import TagFields

class TagContainer(models.Model):
  tags=TagFields

class UserProfile(models.Model):
  cont1=models.OneToOneField(TagContainer,related_name="cont1",null=True,blank=True)
  cont2=models.OneToOneField(TagContainer,related_name="cont2",null=True,blank=True)

После этого у меня появилось некоторое поведение, которое я хотел: При назначении TagContainer для моделей cont1 и попыткеназначить тот же контейнер другим моделям cont1, которые не работали.Но когда я пытаюсь назначить один и тот же TagContainer для cont1 и cont2 той же модели, это работает.Такое же поведение происходит, когда я пытаюсь использовать ForeignKeys с уникальным = True.

Я не могу гарантировать, что поля в экземпляре UserProfile указывают на два разных экземпляра TagContainer.Это возможно?

edit:

Только что обнаружил, что я могу назначить каждый TagContainer один раз для cont1 и один раз для cont2.Неважно, если это один и тот же UserProfile.

...