【发布时间】:2011-07-06 23:31:05
【问题描述】:
我已经四处寻找答案,但找不到。使用 ForeignKey 时,我一直收到一条错误消息,告诉我 'Foo 对象没有属性 'foo_set'。我对 Django/Python 有点陌生,所以我确信这里有一个简单的答案,但到目前为止我还没有找到它。下面是一些代码(用于存储游戏中使用的各种棋盘,每个棋盘都应该有许多与之关联的 Hexes):
型号:
class Boards(models.Model):
boardnum = models.IntegerField(unique=True)
boardsize = models.IntegerField(default=11)
hexside = models.IntegerField(default=25)
datecreated = models.DateTimeField(auto_now_add = True)
class Hexes(models.Model):
boardnum = models.ForeignKey(Boards, null = True)
col = models.IntegerField()
row = models.IntegerField()
cost = models.IntegerField(default=1)
代码(可行):
newboard, createb = Boards.objects.get_or_create(boardnum=boardn)
createb 返回 True。
代码(紧跟上面的代码,但不起作用):
try:
hx = newboard.boards_set.create(col=c, row=r)
except Exception, err:
print "error:", err
traceback.print_exc()
“err”和“traceback.print_exc()”都给出:AttributeError: 'Boards' object has no attribute 'boards_set'
如果我首先使用 get_or_create 创建 Hexes 记录,然后在其上尝试 newboard.boards_set.add(),我会遇到同样的错误。
有什么想法吗?所有建议都表示赞赏。
【问题讨论】:
标签: python django django-models foreign-keys