目录 / django-api
django-api
根据描述生成一个完整的 DRF API 端点,包括序列化器、视图集、路由注册、权限、过滤和分页。 ```python # serializers.py from rest_framework import serializers from .models import YourModel class YourModelSerializer(serializers.ModelSerializer): class Meta: model = YourModel fields = '__all__' # 可选:排除某些字段 # exclude = ['created_at'] # permissions.py from rest_framework import permissions class IsOwnerOrReadOnly(permissions.BasePermission): """ 自定义权限:仅允许对象的所有者编辑它。 """ def has_object_permission(self, request, view, obj): # 读取权限允许任何请求 if request.method in permissions.SAFE_METHODS: return True # 写入权限仅允许所有者 return obj.owner == request.user # views.py from rest_framework import viewsets, filters from django_filters.rest_framework import DjangoFilterBackend from .models import YourModel from .serializers import YourModelSerializer from .permissions import IsOwnerOrReadOnly class YourModelViewSet(viewsets.ModelViewSet): queryset = YourModel.objects.all() serializer_class = YourModelSerializer permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly] # 过滤、搜索、排序 filter_backends = [DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter] filterset_fields = ['status', 'category'] # 精确过滤字段 search_fields = ['title', 'description'] # 搜索字段 ordering_fields = ['created_at', 'updated_at'] # 可排序字段 ordering = ['-created_at'] # 默认排序 # 分页(可选,也可在 settings.py 中全局配置) pagination_class = None # 使用全局分页设置,或自定义分页类 # urls.py from django.urls import path, include from rest_framework.routers import DefaultRouter from .views import YourModelViewSet router = DefaultRouter() router.register(r'your-models', YourModelViewSet, basename='yourmodel') urlpatterns = [ path('api/', include(router.urls)), ] # settings.py(分页和过滤配置示例) REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'PAGE_SIZE': 20, 'DE...
这是模型对公开材料的总结,不是官方声明,请以原链内容为准。
存档时间线
| 版本 | 存档时间 | 内容哈希 | 内容 |
|---|---|---|---|
| v1 | 2026-11-15 04:57 | effaaa93 | 可取 |
版本索引永久保留;内容副本只保留最新 1 份,更早版本仅留索引与哈希(存档时间线的证据链不会因此断裂)。
提交举报 / 纠错
侵权举报经核验成立后,我们会即时下线该条目并删除已存的内容副本。