/ / REST फ्रेमवर्क: वस्तुओं को क्रमबद्ध कैसे करें? - अजगर, json, django, django-rest-Framework

आरईएसटी फ्रेमवर्क: वस्तुओं को क्रमबद्ध करने के लिए कैसे? - पायथन, जेसन, डीजेंगो, डीजेंगो-रेस्ट-फ्रेमवर्क

मैं नेस्टेड ऑब्जेक्ट्स की एक सरणी के साथ एक सूची दृश्य बनाना चाहता हूं। यहाँ मैंने क्या किया है:

rest.py

class GroupDetailSerializer(serializers.ModelSerializer):
class Meta:
model = Group
fields = (
"id",
"num",
"students",
)

@permission_classes((permissions.IsAdminUser,))
class GroupDetailView(mixins.ListModelMixin, viewsets.GenericViewSet):
serializer_class = GroupDetailSerializer

def get_queryset(self):
return Group.objects.all()

models.py

class Group(models.Model):
office = models.ForeignKey(Offices)
num = models.IntegerField()

@property
def students(self):
from pupils.models import Pupils
return Pupils.objects.filter(group=self)

लेकिन यह एक प्रकार की त्रुटि देता है:

<Pupils: John Doe> is not JSON serializable

मुझे लगता है कि मुझे अपने पर एक और धारावाहिक का उपयोग करने की आवश्यकता है students फ़ील्ड, लेकिन कैसे?

उत्तर:

उत्तर № 1 के लिए 1

त्रुटि इसलिए है क्योंकि आपका मॉडल क्रमबद्ध नहीं है।

आप नेस्टेड धारावाहिक का पालन करने के लिए @#wang टिप्पणी देख सकते हैं http://www.django-rest-framework.org/api-guide/serializers/#dealing-with-nested-objects

या अभी के लिए, विशेष रूप से इस मामले के लिए आप अपना कोड बदल सकते हैं:

@property
def students(self):
from pupils.models import Pupils
return list(Pupils.objects.filter(group=self).values())