我尝试创建一个存储标签的模型“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则无关紧要。