gpt4 book ai didi

django - 如何将 django-reversion 添加到使用 django 和 django-rest 框架开发的应用程序中

转载 作者:行者123 更新时间:2023-12-04 12:20:16 30 4
gpt4 key购买 nike

我有一个使用 Django 和 Django Rest 框架开发的应用程序。我想将 django-reversion 功能添加到我的应用程序中。

我已经尝试过http://django-reversion.readthedocs.org/en/latest/api.html#low-level-api但我未能对我的应用程序进行具体更改。

下面是应用程序的模块,我想在其中包含 Django-reversion 以在对象被删除时恢复它们。如何为以下模块设置 django-reversion 配置

admin.py:-

from django.contrib import admin
from.models import Category

admin.site.register(Category)

模型.py:-
  from django.db import models
class Category(models.Model):
name = models.CharField(max_length=64, unique=True)

def __unicode__(self):
return self.name

序列化程序.py:-
        from rest_framework import serializers
from .models import Category

class CategorySerializer(serializers.ModelSerializer):
courses = serializers.HyperlinkedRelatedField(
many=True
read_only=True
view_name='course-detail'
)
class Meta:
model = Category
fields = ('pk', 'name', 'courses',)

urls.py :-
            from django.conf.urls import patterns, url
from rest_framework.urlpatterns import format_suffix_patterns
from .import views
from django.conf.urls import include

category_list = views.CategoryViewSet.as_view({
'get': 'list',
'post': 'create'
})

category_detail = views.CategoryViewSet.as_view({
'get': 'retrieve',
'put': 'update',
'patch': 'partial_update',
'delete': 'destroy',
})

urlpatterns = format_suffix_patterns([

url(r'^categories/$',
category_list,
name='category-list'),
url(r'^categories/(?P<pk>[0-9]+)/$',
category_detail,
name='category-detail'),
])

urlpatterns += [
url(r'^api-auth/', include('rest_framework.urls',
namespace='rest_framework')),
]

view.py :-
from rest_framework import permissions
from rest_framework import viewsets
from .models import Category
from .serializers import CategorySerializer

class CategoryViewSet(viewsets.ModelViewSet):
queryset = Category.objects.all()
serializer_class = CategorySerializer
permission_classes = (permissions.IsAuthenticatedorReadOnly,)

最佳答案

管理员.py

from django.contrib import admin
from.models import Category
import reversion

class BaseReversionAdmin(reversion.VersionAdmin):
pass

admin.site.register(Category, BaseReversionAdmin)

还添加了对 installed_apps 和中间件类的还原。

最后我可以看到“恢复已删除的对象按钮”。

关于django - 如何将 django-reversion 添加到使用 django 和 django-rest 框架开发的应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28593989/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com