두 가지 질문이 있습니다. 관계가 존재하는 경우 나는 어떻게 참을 수 있습니까? 예를 들어, 게시물 모델과 코멘트 모델도 있고, 코멘트에는 foreginKey가 게시되어 있습니다. 이제 게시물을 직렬화 후이 같은 싶습니다Django Rest Framework 관계가있는 경우 True를 반환합니다.
{
id: 2
content: "My first post!"
has-comments: True
}
내 두 번째 질문은 어떻게 모델 관계에서 필드 이름을 바꿉니 까? 다시 우리는 게시물과 코멘트가 있습니다. 코멘트 모델에서 나는 새로운 코멘트를 추가 내가 {: postIdHere 포스트}와 JSON 데이터를 보낼 때 지금
post = models.ForeignKey(Post)
처럼 게시 키를 foregin있다. django 모델이 아닌 drf에서만 postID로 게시물을 변경할 수 있습니까?
나는 당신이 나를 이해하기를 바랍니다. 최고 Redgards, Sierran. 또한 시리얼 라이저의 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()
: 내가 가지고 올 수
감사합니다. 매력처럼 작동합니다! 오직 두 번째 질문에 대한 답변을 얻을 수 있고 평화롭게 잠을 잘 수 있습니다. :) – Sierran
[create()'] (http://www.django-rest-framework.org/api-guide/viewsets/#marking -extra-actions-for-routing)을 주석보기 세트에 추가하십시오. 문서에서 꽤 쉽습니다. 문서화되지 않은 문제가 발생하면 알려주십시오. – Brian
그렇다면 postId를 게시 할 수는 있지만 api는 postId가 아닌 {post : 1} 여전히 리턴 할 것입니다. 소스가있는 Charfield를 사용하려고 시도하지만 드롭 다운에서 관련 게시물을 선택할 가능성이 없어집니다. – Sierran