Я искал ответ на этот вопрос, но не могу его найти. При использовании ForeignKey, я постоянно получаю сообщение об ошибке, сообщающее, что у объекта Foo нет атрибута «foo_set». Я немного новичок в Django / Python, поэтому я уверен, что здесь есть простой ответ, но я до сих пор не смог его найти. Вот некоторый код (для хранения различных досок для использования в игре, каждая из которых должна иметь несколько гексов, связанных с ней):
Модель:
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' нет атрибута'boards_set '
Я получаю ту же ошибку, если сначала создаю запись Hexes с помощью get_or_create, а затем пробую newboard.boards_set.add () .
Есть идеи? Все предложения приветствуются.