[英]Add custom model method in Django admin
我有一个模型Ad
,它有一个自定义的add_ownership_including_ancestors
方法。 像下面这样:
模型.py
class Ad(models.Model):
name = models.CharField(max_length=100)
creator = models.ForeignKey('User', on_delete=models.CASCADE)
def add_ownership_including_ancestors(self, current_user_id):
#function to add permissions to current_user and creator and their ancestors
视图.py
class AdViewSet(viewsets.ModelViewSet):
def create():
#here the method is called
adInstance.add_ownership_including_ancestors(request.user.id)
现在这个功能在普通网页中工作正常。 每当我从 django 管理页面创建或更新ad
对象时,我都希望在django admin
页面中实现相同的方法。 我怎样才能做到这一点?
您可以覆盖.save_model(…)
方法[Django的文档]中的ModelAdmin
您的Ad
模式:
from django.contrib import admin
class AdAdmin(admin.ModelAdmin):
# …
def save_model(self, request, obj, form, change):
super().save_model(request, obj, form, change)
obj.add_ownership_including_ancestors(request.user.id)
admin.site.register(Ad, AdAdmin)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.