可以将模型的两个OneToOneField设置为指向同一相关模型的唯一实例吗?

时间:2012-02-26 16:43:53

标签: django django-tagging

我尝试创建一个存储标签的模型“Tag Container”。然后我尝试将这样一个容器与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时,这是有效的。当我尝试使用具有唯一= True的ForeignKeys时,会发生同样的行为。

我无法确保UserProfile实例中的字段指向TagContainer的两个不同实例。这可能吗?

修改

刚刚发现我可以将每个TagContainer分配给cont1一次,将一次分配给cont2。如果它具有相同的UserProfile则无关紧要。

0 个答案:

没有答案