Skip to main content
 首页 » 编程设计

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

2024年12月31日22三少

更详细地说,我在名为 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  

每当 admin 或任何其他 super 用户 进入任何 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