私には2つの質問があります。関係が存在する場合、どうすれば真を返すことができますか?たとえば私はポストモデルとコメントモデルも持っています、コメントは投稿するforeginKeyを持っています。今ポストシリアライズした後、私はこのDjango Rest Framework関係が存在する場合Trueを返します
{
id: 2
content: "My first post!"
has-comments: True
}
そして、私の2番目の質問は、どのようにモデルの関係でフィールド名を変更されたようなものを持っていたいですか?ここでも投稿とコメントがあります。コメントのモデルでは、私は新しいコメントを追加するには、私は{:postIdHereポスト}でJSONデータを送信する際に今
post = models.ForeignKey(Post)
のように投稿するキーをforeginています。 djangoモデルではなくdrfでpostIDだけポストを変更することは可能ですか?
私はあなたが私を理解することを願っています:) ベストレッドガード、 シエラン。あなたはまた、シリアライザのMeta
クラス内のフィールドを指定する必要があり
from rest_framework import serializers
class YourSerializer(Either Serializer or ModelSerializer...):
has_comments = serializers.SerializerMethodField()
@staticmethod
def get_has_comments(instance):
# Choose whichever one works for you.
# You did not specify some model names, so I am just making stuff up.
return instance.post_set.exists()
return Comment.objects.filter(post_id=instance.id).exists()
:私が思い付くことができ
ありがとうございました!魅力的な作品!私だけが私の2番目の質問のためのresposneを取得し、私は平和的に眠ることができます:) – Sierran
[create() '](http://www.django-rest-framework.org/api-guide/viewsets/#markingあなたのコメントのビューセット内のルーティングのための-extra-actions)。 docsでかなり簡単です。あなたが文書化されていない問題に遭遇した場合は教えてください。 – Brian
私はpostIdを投稿することはできますが、apiはpostIdではなく{post:1}を返します。私はsource = postを使ってCharfieldを使ってみましたが、ドロップダウンから関連する投稿を選択する可能性は失われました。 – Sierran