简体   繁体   English

Django rest中的通用关系

[英]Generic relation in Django rest

Problem 问题

I want to create Student With Address. 我想用地址创建学生。 How can I write REST API in Django for same. 我该如何在Django中编写REST API。

Address & Student 地址和学生

class Address(models.Model):
    address = models.CharField(max_length=100, null=False, blank=False)
    land_mark = models.CharField(max_length=100, null=True, blank=True)
    city = models.CharField(max_length=100, null=True, blank=True)
    state = models.CharField(max_length=100, null=True, blank=True)
    pin_code = models.CharField(max_length=100, null=True, blank=True)
    latitude = models.FloatField(default=0.0)
    longitude = models.FloatField(default=0.0)
    geo_code = models.CharField(max_length=100, null=True, blank=True)
    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE, 
                                    null=True)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey('content_type', 'object_id')

 class Student(models.Model):
    name = model.CharField(max_length=100, null=False, blank=False)
    address = GenericRelation(Address)
    def __str__(self):
        return self.name

Serializers 序列化器

class AddressSerializer(serializers.ModelSerializer):
    class Meta:
        model = Address
        fields = "__all__"


 class StuddentSerializer(serializers.ModelSerializer):
       class Meta:
            model = Student
            fields = "__all__"

API View API视图

class AddressApiView(ListCreateAPIView):
    queryset = Address.objects.all()
    serializer_class = AddressSerializer

 class StudentApiView(ListCreateAPIView):
    queryset = Student.objects.all()
    serializer_class = StuddentSerializer

How do I get my create/view student? 如何获得我的创建/查看学生?

您可以尝试使用第三方应用程序rest-framework-generic-relation 链接

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM