Notion Blog
技术分享1 分钟阅读

ModelViewSet快速实现接口正删改查的添加

ModelViewSet快速实现接口正删改查的添加

ModelViewSet实现接口通用的增删改查

添加model类

class Locusts(models.Model):
    create_time = models.DateTimeField('创建日期', auto_now=True)
    create_user = models.CharField('创建人',max_length=32, null=True)
    uptime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
    update_user = models.CharField('更新人', max_length=32,null=True)
    path = models.CharField('文件路径', max_length=32,null=True)
    content = models.TextField('文件内容', null=True)

serializers类添加

from rest_framework import serializers
from apitest.models import Locusts


class LocustSerializers(serializers.ModelSerializer):
    class Meta:
        model=Locusts
        fields='__all__'
        read_only_fields = ('id', 'create_user', 'create_time')

外键数据展示

在meta类之前添加需要返回的数据:locust_name = serializers.CharField(source='locust.name')
class LocustReportSerializers(serializers.ModelSerializer):
    locust_name = serializers.CharField(source='locust.name')
    class Meta:
        model = LocustReport
        fields = '__all__'

2.在meta类中添加 depth = 1 参数,可以把关联的外键的所以参数一起返回

class LocustReportSerializers(serializers.ModelSerializer):
    class Meta:
        model = LocustReport
        fields = '__all__'
        depth = 1

view视图接口添加

class LocustList(ModelViewSet):
    queryset = Locusts.objects.all().order_by('-create_time')
    serializer_class = LocustSerializers

添加路由

from rest_framework.routers import DefaultRouter
from apitest import views

router = DefaultRouter()
router.register("locust",views.LocustList)  #添加路由
urlpatterns = [
    path(r'', include(router.urls)),
]
有关使用上的问题,欢迎您在底部评论区留言,一起交流~

读者评论

评论会同步写入该文在 Notion 中的页面底部(与正文同页,便于管理)。

0/1500

暂无评论,欢迎抢沙发。