Django OneToOneField是否需要唯一? [英] Does Django OneToOneField needs to be unique?
本文介绍了Django OneToOneField是否需要唯一?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我收到列template_id不是唯一的"错误,现在让我解释一下. 我有一个模板模型和一个播放器版本.
I get a "column template_id is not unique" error, now let me explain. I have a template model and a player version of it.
模板:
class FarmTemplate(models.Model):
"""Template of the "Farm" building"""
name = models.CharField(max_length=23)
flavor = models.TextField()
resource = models.CharField(max_length=23)
version = models.FloatField(unique=True)
def __unicode__(self):
return self.name
我的用户模型:
class Farm(models.Model):
"""Keeps track of Townhall"""
user = models.ForeignKey(User)
template = models.OneToOneField(FarmTemplate)
level = models.IntegerField()
def __unicode__(self):
return "User: %s, Farm level: %s" % (self.user, self.level)
当我创建第一个对象时,一切正常,但是,当我创建第二个对象时,它告诉我OneToOneField不是唯一的(这是正确的,因为它使用相同的模板. 但是我不知道为什么这需要独特. 有人可以解释我哪里出了问题吗?
When I create my first object everything goes right, however, when I create a second it tells me the OneToOneField isnt unique (which is correct since it uses the same template. But I have no clue why this needs to be unique.. Can someone please explain where I went wrong?
推荐答案
OnetoOne表示每个元组都是唯一的.我认为您应该使用ForeignKey:
OnetoOne means each tuple is unique. I think you should use ForeignKey:
class Farm(models.Model):
"""Keeps track of Townhall"""
user = models.ForeignKey(User)
template = models.ForeignKey(FarmTemplate)
level = models.IntegerField()
def __unicode__(self):
return "User: %s, Farm level: %s" % (self.user, self.level)
这篇关于Django OneToOneField是否需要唯一?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文