简体   繁体   English

Django:如何在管理面板中检测对象请求?

[英]Django: How can i detect object request in admin panel?

To be more detailed, i have got list of objects in admin panel named Images更详细地说,我在管理面板中获得了名为 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 

Whenever admin or any other superuser enters to any Images.object the seen_by_admin field should be changed to seen_by_admin = True每当admin或任何其他超级用户进入任何Images.objectseen_by_admin字段应更改为seen_by_admin = True

You could override the save_model method:您可以覆盖 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)

More info: https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model更多信息: https : //docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM