Django:我如何在管理面板中检测对象请求?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django:我如何在管理面板中检测对象请求?相关的知识,希望对你有一定的参考价值。
更详细的说,我在管理面板中有一个名为Images的对象列表
class Image(models.Model):
image = models.ImageField(upload_to='products/%Y/%m/%d/',
verbose_name=_('Image'), default='default.png')
album = models.ForeignKey('Album', related_name='images')
category = TreeForeignKey(Category, null=True)
likes = GenericRelation('Like', related_name='image_likes', null=True)
is_main = models.BooleanField(default=False)
is_slider = models.BooleanField(default=False)
seen = models.IntegerField(default=0)
seen_by_admin = models.BooleanField(default=False)
class ImageAdmin(admin.ModelAdmin):
list_display = ['album', 'get_owner', 'is_main', 'is_slider','total_likes', 'seen', 'image_tag', ]
list_filter = ['album', 'album__owner', 'is_main', 'is_slider', 'album__created_at']
search_fields = ['album__name']
list_per_page = 15
每当管理员或任何其他超级用户进入任何Images.object
时,seen_by_admin
字段应更改为seen_by_admin = True
答案
您可以覆盖save_model方法:
class ImageAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
obj.seen_by_admin=True
super().save_model(request, obj, form, change)
更多信息:https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model
以上是关于Django:我如何在管理面板中检测对象请求?的主要内容,如果未能解决你的问题,请参考以下文章
DJANGO - 仅针对模型中的某些对象将管理面板的权限分配给用户
如何停止在 Django 2.* 管理面板中记录最近的操作和历史记录?