JSON에서 PrimaryKeyRelatedField의 문자열 표현을 얻는 방법

로한

나는 Django REST Framework를 사용하고 있으며 이것에 대해 상당히 초보자입니다.

값이 아닌 JSON 출력의 manytomanyfield 및 foreignkey 필드에 대한 문자열 표현을 원합니다.

models.py

class Movie(models.Model):
    """Movie objects"""
    name = models.CharField(max_length=128)
    directorName = models.ForeignKey(Director)
    genre = models.ManyToManyField(Genre)

serializers.py

class MovieSerializer(serializers.ModelSerializer):
    """
    Serialiazing all the Movies.
    """
    genre = serializers.PrimaryKeyRelatedField(many=True, queryset=Genre.objects.all())
    directorName = serializers.PrimaryKeyRelatedField(queryset=Director.objects.all())
    owner = serializers.ReadOnlyField(source='owner.username')
    class Meta:
        model = Movie
        fields = ('popularity',"directorName",'genre','imdbScore','name','owner')

JSON 출력

{"popularity":"90.0","directorName":1,"genre":[1,2,3],"imdbScore":"8.9","name":"Titanic"}

directorName과 장르의 display_name 대신 값만 가져옵니다.

이 문제를 해결하는 방법을 알려주세요.

EDIT [SOLVED] pk를 반환하므로 PrimaryKeyRelatedField의 to_representation () 메서드를 재정의해야합니다.

라훌 굽타

그렇게하려면 오버라이드 (override) 할 필요가 to_representation()방법 PrimaryKeyRelatedField가 반환로를 pk.

MyPrimaryKeyRelatedField상속 된를 PrimaryKeyRelatedField만든 다음 해당 to_representation()메서드 를 재정의 할 수 있습니다 .

반환 value.pk되는 대신 PrimaryKeyRelatedField지금 문자열 표현을 반환합니다. six.text_type()대신 str()Python 2 (유니 코드) 및 Python 3 (str) 버전을 처리 하는 대신 사용 했습니다 .

from django.utils import six
from rest_framework import serializers

class MyPrimaryKeyRelatedField(serializers.PrimaryKeyRelatedField):

    def to_representation(self, value):
        return six.text_type(value) # returns the string(Python3)/ unicode(Python2) representation now instead of pk 

그러면 serializers.py다음과 같이 표시됩니다.

class MovieSerializer(serializers.ModelSerializer):
    """
    Serialiazing all the Movies.
    """
    genre = MyPrimaryKeyRelatedField(many=True, queryset=Genre.objects.all())
    directorName = MyPrimaryKeyRelatedField(queryset=Director.objects.all())
    owner = serializers.ReadOnlyField(source='owner.username')
    class Meta:
        model = Movie
        fields = ('popularity',"directorName",'genre','imdbScore','name','owner')

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Android Oreo에서 문자열의 Base64 표현을 얻는 방법

분류에서Dev

객체의 문자열 표현을 얻는 다양한 방법

분류에서Dev

Python 2.7에서 Oracle 데이터베이스에 대한 쿼리의 문자열 표현을 얻는 방법

분류에서Dev

elm의 case 문에서 문자열 값을 얻는 방법

분류에서Dev

Laravel에서 문자열의 모든 열 값을 얻는 방법

분류에서Dev

firebase의 json 응답에서 특정 문자열 값을 얻는 방법

분류에서Dev

json 문자열에서 jquery 내부의 특정 객체 값을 얻는 방법

분류에서Dev

C의 문자 배열에서 문자열 값을 얻는 방법

분류에서Dev

JXPath 표현식에서 문자열의 하위 문자열을 사용하는 방법

분류에서Dev

파이썬의 문자열에서 색상 표현 문자열을 찾는 방법은 무엇입니까?

분류에서Dev

JavaScript 값 또는 객체의 문자열 표현을 얻는 안전한 방법

분류에서Dev

freemarker의 문자열에서 URL을 얻는 방법

분류에서Dev

Android에서 특정 형식의 문자열을 얻는 방법

분류에서Dev

appengine의 memcach에서 문자열을 얻는 방법-Java

분류에서Dev

자바에서 반복 문자열을 표현하는 방법

분류에서Dev

문자열에서 문자의 좌표 (x, y)를 얻는 방법

분류에서Dev

Java에서 문자열의 큰 따옴표 사이의 문자열을 얻는 방법

분류에서Dev

Entity Framework에서 숫자 문자열 열의 최대 값을 얻는 방법

분류에서Dev

안드로이드의 JSON 문자열 값을 얻는 방법

분류에서Dev

C ++에서 부모 문자열과 동일한 순서로 문자열의 문자 집합을 얻는 방법

분류에서Dev

JSON 문자열에서 각 값을 얻는 방법

분류에서Dev

curl json 출력에서 특정 문자열을 얻는 방법

분류에서Dev

주어진 문자열에서 JSON STRING을 얻는 방법

분류에서Dev

Kotlin 또는 Java에서 정규 표현식을 통해 문자열의 일부를 얻는 방법은 무엇입니까?

분류에서Dev

파이썬에서 정규 표현식을 사용하여 괄호에서 문자열을 얻는 방법

분류에서Dev

Linux 명령을 사용하여 문자열의 시작과 끝에서 표현식을 건너 뛰는 방법

분류에서Dev

레이블의 json 문자열에서 아이콘을 표시하는 방법

분류에서Dev

자바 스크립트의 href에서 특정 문자열을 얻는 방법

분류에서Dev

JCalendar에서 JMonthChooser의 문자열에서 월 이름을 얻는 방법

Related 관련 기사

  1. 1

    Android Oreo에서 문자열의 Base64 표현을 얻는 방법

  2. 2

    객체의 문자열 표현을 얻는 다양한 방법

  3. 3

    Python 2.7에서 Oracle 데이터베이스에 대한 쿼리의 문자열 표현을 얻는 방법

  4. 4

    elm의 case 문에서 문자열 값을 얻는 방법

  5. 5

    Laravel에서 문자열의 모든 열 값을 얻는 방법

  6. 6

    firebase의 json 응답에서 특정 문자열 값을 얻는 방법

  7. 7

    json 문자열에서 jquery 내부의 특정 객체 값을 얻는 방법

  8. 8

    C의 문자 배열에서 문자열 값을 얻는 방법

  9. 9

    JXPath 표현식에서 문자열의 하위 문자열을 사용하는 방법

  10. 10

    파이썬의 문자열에서 색상 표현 문자열을 찾는 방법은 무엇입니까?

  11. 11

    JavaScript 값 또는 객체의 문자열 표현을 얻는 안전한 방법

  12. 12

    freemarker의 문자열에서 URL을 얻는 방법

  13. 13

    Android에서 특정 형식의 문자열을 얻는 방법

  14. 14

    appengine의 memcach에서 문자열을 얻는 방법-Java

  15. 15

    자바에서 반복 문자열을 표현하는 방법

  16. 16

    문자열에서 문자의 좌표 (x, y)를 얻는 방법

  17. 17

    Java에서 문자열의 큰 따옴표 사이의 문자열을 얻는 방법

  18. 18

    Entity Framework에서 숫자 문자열 열의 최대 값을 얻는 방법

  19. 19

    안드로이드의 JSON 문자열 값을 얻는 방법

  20. 20

    C ++에서 부모 문자열과 동일한 순서로 문자열의 문자 집합을 얻는 방법

  21. 21

    JSON 문자열에서 각 값을 얻는 방법

  22. 22

    curl json 출력에서 특정 문자열을 얻는 방법

  23. 23

    주어진 문자열에서 JSON STRING을 얻는 방법

  24. 24

    Kotlin 또는 Java에서 정규 표현식을 통해 문자열의 일부를 얻는 방법은 무엇입니까?

  25. 25

    파이썬에서 정규 표현식을 사용하여 괄호에서 문자열을 얻는 방법

  26. 26

    Linux 명령을 사용하여 문자열의 시작과 끝에서 표현식을 건너 뛰는 방법

  27. 27

    레이블의 json 문자열에서 아이콘을 표시하는 방법

  28. 28

    자바 스크립트의 href에서 특정 문자열을 얻는 방법

  29. 29

    JCalendar에서 JMonthChooser의 문자열에서 월 이름을 얻는 방법

뜨겁다태그

보관