使用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.py的INSTALLED_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




