我有以下Django模型:
class Recipe(models.Model):
ingredients = models.ManyToManyField(
'foo.Ingredient',
through='RecipeIngredient',
through_fields=('recipe', 'ingredient')
)
class RecipeIngredient(models.Model):
recipe = models.ForeignKey(Recipe, blank=True, null=True)
ingredient = models.ForeignKey('foo.Ingredient', blank=True, null=True)
产生错误:
name = model._meta.db_table
AttributeError: 'str' object has no attribute '_meta'
看起来ORM无法找到foo.Ingredient
模型并将其解释为str(但ForeginKey
工作正常)
我也尝试使用through='current.RecipeIngredient
,它产生:
sec_column = fk.m2m_column_name()
AttributeError: 'ManyToManyField' object has no attribute 'm2m_column_name'
如何解决?
感谢。
答案 0 :(得分:0)
AttributeError: 'str'
可以通过将'{1}}替换为'through ='current_app.RecipeIngredient'来解决(请参阅more details here at the issue discussion)
AttributeError:'ManyToManyField'对象没有属性'm2m_column_name'可以通过将Ingredient和recipe放到同一个app来解决。
但更新到Django 1.9.7是最好的方法。