我有两个模特。
父
class Parent(models.Model):
... code
子
class Child(models.Model):
... code
parent = models.ForeignKey(Parent, related_name="parents")
和API
class ParentResource(ModelResource):
children = fields.ToManyField("project.module.api.ChildResource", 'children', related_name='parents', null=True, blank=True, full=True)
class Meta:
queryset = Parent.objects.all()
和
class ChildResource(ModelResource):
parent = fields.ForeignKey("project.module.api.ParentResource", 'parent')
class Meta:
queryset = Child.objects.all()
当我尝试访问父资源时,children
的数组为空。欢迎任何帮助澄清。
我查看了以前的答案here和here以及文档here,但我仍然无法看到发生了什么。
谢谢
答案 0 :(得分:1)
从你的代码:
parent = models.ForeignKey(Parent, related_name="parents")
related_name
在Parent
模型上设置属性名称(在tastypie资源上也是如此),默认值为child_set
,您现在将其设置为{{1 }}。这意味着parents
模型Parent
将在名为p
的属性上具有Child
个对象的查询集,这显然不对。
此外,父关系的parents
上的related_name与相关模型上的属性不匹配。
以下是每个应该正常工作的更正版本:
ChildResource
class Parent(models.Model):
... code
class Child(models.Model):
... code
parent = models.ForeignKey(Parent, related_name="children")