আমার কাছে m2m / মডেলগুলির সাথে ডিলিং এবং জ্যাঙ্গো বিশ্রাম কাঠামোয় তাদের উপস্থাপনা সম্পর্কে প্রশ্ন রয়েছে। আসুন একটি সর্বোত্তম উদাহরণ নেওয়া যাক:
models.py:
from django.db import models
class Member(models.Model):
name = models.CharField(max_length = 20)
groups = models.ManyToManyField('Group', through = 'Membership')
class Group(models.Model):
name = models.CharField(max_length = 20)
class Membership(models.Model):
member = models.ForeignKey('Member')
group = models.ForeignKey('Group')
join_date = models.DateTimeField()
serializers.py:
imports...
class MemberSerializer(ModelSerializer):
class Meta:
model = Member
class GroupSerializer(ModelSerializer):
class Meta:
model = Group
views.py:
imports...
class MemberViewSet(ModelViewSet):
queryset = Member.objects.all()
serializer_class = MemberSerializer
class GroupViewSet(ModelViewSet):
queryset = Group.objects.all()
serializer_class = GroupSerializer
যখন সদস্যের উদাহরণ পাওয়া যায়, তখন আমি সফলভাবে সদস্যের সমস্ত ক্ষেত্র এবং তার গোষ্ঠীগুলি সাফল্যের সাথে গ্রহণ করি - তবে আমি কেবল সদস্যদের মডেল থেকে আসা অতিরিক্ত বিশদ ছাড়াই গোষ্ঠীর বিবরণ পাই।
অন্য কথায় আমি প্রত্যাশা করি :
{
'id' : 2,
'name' : 'some member',
'groups' : [
{
'id' : 55,
'name' : 'group 1'
'join_date' : 34151564
},
{
'id' : 56,
'name' : 'group 2'
'join_date' : 11200299
}
]
}
Join_date টি নোট করুন ।
আমি এটি সম্পর্কে অবশ্যই জ্যাঙ্গো রেস্ট-ফ্রেমওয়ার্ক অফিসিয়াল পৃষ্ঠা সহ অনেকগুলি সমাধানের চেষ্টা করেছি এবং কেউই এ সম্পর্কে যথাযথ সরল উত্তর দিতে বলে মনে হচ্ছে না - এই অতিরিক্ত ক্ষেত্রগুলি অন্তর্ভুক্ত করার জন্য আমার কী করা দরকার? জ্যাঙ্গো-টেস্টিপি দিয়ে আমি এটি আরও সোজা-ফরোয়ার্ড পেয়েছি তবে কিছু অন্যান্য সমস্যা ছিল এবং বিশ্রামের কাঠামো পছন্দ করে।