اذهب إلى المحتوى
  • 0

كيف اعمل nested serializers ب django rest

Ecommerce Vente

السؤال

السلام عليكم كيف أعمل nested serializers ب django rest framework 

Models

class Profile(models.Model):
    display_name = models.CharField(max_length=30)
    mobile = models.IntegerField()
    address = models.TextField()
    email = models.EmailField()
    dob = models.DateField()
   photo=models.FileField(upload_to='profile/',null=True,blank=True)
    status = models.IntegerField(default=1)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)


class Hobby(models.Model):   user=models.ForeignKey(Profile,on_delete=models.CASCADE,related_name='user_hobby',null=True,blank=True)
    name = models.CharField(max_length=30)
    description = models.TextField()
    status = models.IntegerField(default=1)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

في مجلد التطبيق الخاص بك ، تقوم بإنشاء ملف serializer.py.

from rest_framework import serializers
from .models import Profile,Hobby

# ننشأ السيريالايز الخاص بهاذ المودل
class HobbySerializer(serializers.ModelSerializer):

    class Meta:
        model = Hobby
        fields = '__all__'
        
class ProfileSerializer(serializers.ModelSerializer):
    user_hobby = HobbySerializer(many=True)
	"""هل لاحظت أنني أتصل بفئة HobbySerializer الخاصة بي في ProfileSerializer. وهذا ما يسمى تداخل المتسلسلات. للتعامل مع طريقة POST ، سأتجاوز طريقة الإنشاء التي أحفظ بها بيانات الملف الشخصي ثم أحفظ هواية الشخص الذي تم إنشاء ملفه الشخصي. الآن دعنا ندعو ProfileSerializer لدينا في العرض."""
    class Meta:
        model = Profile
        fields = '__all__'

    def create(self, validated_data):
        user_hobby = validated_data.pop('user_hobby')
        profile_instance = Profile.objects.create(**validated_data)
        for hobby in user_hobby:
            Hobby.objects.create(user=profile_instance,**hobby)
        return profile_instance

ثم في ملف views :

from rest_framework import viewsets 
from .models import Profile
from .serializers import ProfileSerializer

# في هاذ الكلاس نقوم بالتحكم في عرض البيانات 
class ProfileViewset(viewsets.ModelViewSet):
  	#البيانات المراد عرضها
    queryset = Profile.objects.all()
    # شكل البيانات 
    serializer_class = ProfileSerializer
    # http  طرق استعلام
    http_method_names = ['get','post','retrieve','put','patch']

 

1_1-zDGXl0iHSW8JA4OG213A.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...