You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Django REST Framework搭建API时,是否可使用Django Admin管理模型?

当然支持!Django REST Framework 完全兼容 Django Admin 站点

别担心,Django REST Framework(DRF)本身就是基于Django核心框架构建的扩展工具,它和原生的Django Admin站点完全兼容,两者可以无缝配合实现你想要的功能:用Admin管理数据库对象,用DRF对外提供REST API接口。

具体怎么配置?其实和普通Django项目+DRF的配置流程一致,分几步就能搞定:

  • 第一步:确保Django Admin已经启用(默认新建Django项目时就已经配置好了)

    • 检查settings.pyINSTALLED_APPS里包含django.contrib.admin
    • 检查项目根目录的urls.py里有Admin的路由配置:
      from django.contrib import admin
      urlpatterns = [
          path('admin/', admin.site.urls),
          # 你的DRF API路由
      ]
      
  • 第二步:为你的数据库模型注册Django Admin
    在对应app的admin.py里注册模型,和普通Django项目完全一样:

    from django.contrib import admin
    from .models import YourModel
    
    admin.site.register(YourModel)
    

    这样你就能通过/admin路径访问后台,添加、修改、删除数据库对象了。

  • 第三步:正常配置DRF的API接口
    按照DRF的流程创建序列化器(Serializer)、视图(View/ViewSet),并配置API路由,比如:

    # serializers.py
    from rest_framework import serializers
    from .models import YourModel
    
    class YourModelSerializer(serializers.ModelSerializer):
        class Meta:
            model = YourModel
            fields = '__all__'
    
    # views.py
    from rest_framework import viewsets
    from .models import YourModel
    from .serializers import YourModelSerializer
    
    class YourModelViewSet(viewsets.ModelViewSet):
        queryset = YourModel.objects.all()
        serializer_class = YourModelSerializer
    

    配置好路由后,API就能返回Admin后台管理的数据库对象了。

为什么DRF文档里没专门讲Admin?

因为Django Admin是Django原生的核心功能,DRF的文档专注于REST API相关的扩展内容,不会重复覆盖Django本身的基础功能。你完全可以把DRF看作是Django的一个“API增强插件”,原生Django的所有功能(包括Admin、ORM、认证等)都能正常使用。

内容的提问来源于stack exchange,提问作者semaj

火山引擎 最新活动