(如果我遗漏了一些有助于诊断的关键信息,我很抱歉——我是Python和Django的新手。)
当我试图通过属性在ManyToManyField中使用字符串时,Django会抱怨:
File "/vagrant/flamingo_env/lib/python3.4/site-packages/django/db/models/fields/related.py", line 1366, in _check_relationship_model
for f in through._meta.fields:
AttributeError: 'str' object has no attribute '_meta'
用法:
^{pr2}$如果我创建一个穿透模型,错误就会消失:
class VoterAddress(models.Model):
voter_id = models.ForeignKey(Voter)
address_id = models.ForeignKey(Address)
class Meta:
db_table = 'voter_addresses'
但当然,它会抱怨选民没有被定义——我不能简单地改变顺序,否则VoterAddress也不会被定义。在
在每一个例子中,我都看到了使用的基本字符串版本。发生什么事?在
要解决排序问题,可以给
ForeignKey
类指定一个字符串值。在这是一种为尚未在文件中定义的模型定义外键的方法。 如果您更改此Django不会抱怨
Voter hasn't been defined
。在您需要修复传递给您的
through
的名称它必须是自定义^{的确切名称
如果不传递
through
参数,则不需要创建throughmodel
。Django将为您创建和管理一个相关问题 更多 >
编程相关推荐