0

このhttp://example.com/api/v1/nisit/?format=jsonのようなことをすると。「モデル '' には空の属性 'ページ' があり、null 値は許可されていません」というエラーが表示されます。

Tastypie の逆の関係を使いたい。「ページ」モデル形式「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に従って、 >>>> page=................. をコーディングしようとしています#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,
        }
4

1 に答える 1

0

追加してみてください:

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

キャッシュをクリアし、null=Trueそのエラーメッセージを抑制する可能性のあるものをすべて削除してください。

于 2013-03-05T04:35:08.153 に答える