ManyToManyField.add无效

时间:2015-10-06 21:37:22

标签: django django-models

我有两个模型,其中一个(())有两个指向var authItem: AuthorizationItem = AuthorizationItem(name: kAuthorizationRightExecute, valueLength: 0, value: nil, flags: 0) var authRights: AuthorizationRights = AuthorizationRights(count: 1, items: &authItem) let authFlags: AuthorizationFlags = AuthorizationFlags.ExtendRights var result = false var authRef: AuthorizationRef = nil let status: OSStatus = AuthorizationCreate(&authRights, nil, authFlags, &authRef) if status == errAuthorizationSuccess { result = SMJobBless(kSMDomainSystemLaunchd, "**helperBundleIdentifier**", authRef, nil) } 的M2M关系。

Bar

使用Django 1.8设置项目后,这些字段都没有Foo方法,如下所示。

class Foo(Model):
    pass  # Whatever

class Bar(Model):
    foos = ManyToManyField(
        Foo, blank=True, related_name="+")
    bazs = ManyToManyField(
        Foo, blank=True, related_name="+")

.add()的文档是here

In [1]: foo = Foo.objects.first() Out[2]: <Foo: ...> In [3]: bar = Bar.objects.first() Out[4]: <Bar: ...> In [8]: bar.foos.add(foo) In [9]: bar.foos.all() Out[9]: [] In [11]: bar.save() In [12]: bar.foos.all() Out[12]: [] 的文档是here。 使用它是因为ManyToManyField的反向related_names会在related_name上发生冲突。

建议的解决方法是什么?

1 个答案:

答案 0 :(得分:1)

我同意Gocht的观点,即它很可能与具有相同值的related_name属性有关。根据您的评论,您似乎在寻找ForeignKey字段而不是ManyToManyField。如果你只想要从Bar到Foo的单向关系,这将是最好的选择。

还有其他原因你没有使用那种类型的领域吗?

评论你的评论还不够,否则我会把它放在那里。 :(