如何使用tastypie反向关系

时间:2013-02-02 05:14:09

标签: django reverse tastypie

当我做这样的事情时http://example.com/api/v1/nisit/?format=json。我将得到此错误“模型''具有空属性'页'并且不允许空值。”

我想使用tastypie的反向关系。反向“页面”模型形式“nisit”模型。我想要的结果是调用127.0.0.1:8000/api/v1/nisit/?format=json&friend_关注页面 _id = 1

问题的关键是“如何在Nisit模型中设置followingPage属性与Page模型中的followingNisit属性的反向关系

这是我的模特

 class Nisit(models.Model):
       friends =  models.ManyToManyField('self',null=True,blank=True)


 class Page(models.Model):
       followingNisit = models.ManyToManyField(Nisit,blank=True)

这是我的资源

class NisitResource(ModelResource):
     friend = fields.ManyToManyField('self','friend',null=True)
     followingPage = fields.ToManyField('chula.api.resourse.PageResource','followingPage')
     class Meta:
        queryset = Nisit.objects.all()
        resource_name = 'nisit'
        filtering = {
            'friend' : ALL_WITH_RELATIONS,
            'id' : ALL,
        }

在上面的代码中。我尝试编码>>>> page = .................根据此链接http://django-tastypie.readthedocs.org/en/latest/resources.html#reverse-relationships 但它无法帮助

class PageResource(ModelResource):
    followingNisit = fields.ManyToManyField(NisitResource, 'followingNisit',null=True)

    class Meta:
        queryset = Page.objects.all()
        resource_name = 'page'
        authorization= Authorization()
        filtering = {
            'followingNisit': ALL_WITH_RELATIONS,
            'p_name': ALL,
        }

1 个答案:

答案 0 :(得分:0)

尝试添加:

class Page(models.Model):
     followingNisit = models.ManyToManyField(Nisit,blank=True, related_name="followingPage")

清除缓存,并删除所有null=True可能会阻止该错误消息。