2017-08-30 11 views
1

HyperLinkRelatedFieldが、オブジェクトの新しいインスタンスを作成するためにハイパーリンクを要求するのではなく、ただIDを受け入れることを許可したいと思います。ハイパーリンクはidだけでなく、どちらか一方のように見えます。これは可能ですか?コメントを返すためDjango Rest Framework HyperLinkedRelatedField:POSTSリクエストのURLの代わりにidを許可する

class Blog(serializers.HyperlinkedModelSerializer): 
    class Meta: 
     model = Blog 
     fields = ('url', 'id') 

class Comment(serializers.HyperlinkedModelSerializer): 
    blog = serializers.HyperlinkedRelatedField(view_name='blog-detail', queryset=Blog.objects.all()) 
    class Meta: 
     model = Comment 
     fields = ('url', 'text', 'blog') 

GETリクエスト(これは完璧です): { 'URL': 'mysite.fake /コメント/ 1'、 'テキスト': 'テストテキスト'、 'ブログ':「個人用サイト。フェイク/ブログ/ 1 '}

POSTリクエストが必要です。 {' テキスト ': 'テストテキスト'、 'ブログ': 'mysite.fake /ブログ/ 1'}私もできるようにしたい

['テキスト': 'テストテキスト'、 'ブログ': '1'}

+0

'serializers.HyperlinkedModelSerializer'の代わりに' serializers.ModelSerializer'を使用することができます。対応する 'serializers.RelatedField'があるかどうかわかりません。 –

答えて

0

可能ですが、そのままではありません。

ModelSerializerを使用して、独自のリレーショナルフィールドを定義する必要があります。 PrimaryKeyRelatedFieldで始まり、to_representationを上書きするように、url instead of an idを返します。

+0

ありがとう、これはまさに私が知る必要があったものです:) – joshcrim

関連する問題