【问题标题】:how to use tastypie reverse relation如何使用美味的反向关系
【发布时间】:2013-01-17 12:09:49
【问题描述】:

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

我想使用美味派的反向关系。逆向“页面”模型形成“nisit”模型。我想要的结果是调用 127.0.0.1:8000/api/v1/nisit/?format=json&friend_followingPage_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,
        }

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

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,
        }

【问题讨论】:

    标签: django reverse tastypie


    【解决方案1】:

    尝试添加:

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 1970-01-01
      • 2018-09-14
      • 2018-07-05
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      • 2016-05-08
      • 2021-05-17
      相关资源
      最近更新 更多