首页 > 解决方案 > django 2.1 在从管理面板添加新项目时执行功能

问题描述

每次管理员在表格视频中添加新项目时,我都需要执行命令。示例 admin.py

class VideosAdmin(admin.ModelAdmin):
    list_display = ('__str__', 'author', 'created_at', 'title_gen', 'deleted')
    list_filter = ['created_at', 'author', 'deleted']
    search_fields = ['Title', 'Description', 'Tags', 'Playlist']
    exclude = ['title_gen', 'Playlist', 'Tags', 'deleted', 'author', 'Category', 'Language']

    class Meta:
        model = Videos


    def get_queryset(self, request):
        return self.model.all_objects.all()

    def save_model(self, request, obj, form, change):
        if getattr(obj, 'author', None) is None:
            obj.author = request.user
        obj.save()

admin.site.register(Videos, VideosAdmin)

每次管理员添加新视频项目时我都需要执行功能proccessing(video_id),我该怎么做?

标签: django

解决方案


You can override in save_model method:

def save_model(self, request, obj, form, change):
    if getattr(obj, 'author', None) is None:
        obj.author = request.user
    obj.save()
    if not change:  # Change is False when a New Object is Created
        proccessing(obj.id)  # import proccessing method in the file as well

推荐阅读