Han*_*ong 6 django model one-to-one
我收到“列template_id不是唯一的”错误,现在让我解释一下。我有一个模板模型和一个播放器版本。
模板:
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
Run Code Online (Sandbox Code Playgroud)
我的用户模型:
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)
Run Code Online (Sandbox Code Playgroud)
当我创建第一个对象时,一切正常,但是,当我创建第二个对象时,它告诉我OneToOneField不是唯一的(这是正确的,因为它使用相同的模板。但是我不知道为什么它需要唯一。)请解释我哪里出错了?
OnetoOne意味着每个元组都是唯一的。我认为您应该使用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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2729 次 |
| 最近记录: |