2016-02-04 16 views
0
class CustomAdmin(admin.ModelAdmin): 
    exclude = ['is_external'] 

@admin.register(Submission) 
class SubmissionAdmin(CustomAdmin): 
    list_display = ('is_active', 'activate') 

    def activate(self, obj): 
     from django.utils.safestring import mark_safe 
     if not obj.is_active: 
      return mark_safe('<button name="Activate" button type="submit" class="btn" ' 
          'value="%s">Activate</button>' % escape(obj.id)) 
     else: 
      return mark_safe('<button name="Activate" button type="submit" ' 
          'value="%s" disabled>Activate</button>' % escape(obj.id)) 

我在某些管理日志列表中做了一个按钮激活。点击这个按钮后,它提交整个列表,并发送POST请求到同一页面,激活属性选择行的ID,我想处理该POST。我可以在这个SubmissionAdmin类中做到这一点,以及如何?管理日志中提交按钮的POST请求

回答

0

我想你可以通过自定义创建行动

class CustomAdmin(admin.ModelAdmin): 
    exclude = ['is_external'] 

@admin.register(Submission) 
class SubmissionAdmin(CustomAdmin): 
    list_display = ('is_active') 

    def activate(self,request,queryset): 
      for obj in queryset: 
       #you can add the activate logic here 

    def deactivate(self,request,queryset): 
      for obj in queryset: 
       #you can add the de-activate logic here 

    activate.short_description = "Activate" 
    activate.short_description = "De-Activate" 
    actions = [activate,deactivate] 

https://docs.djangoproject.com/en/1.9/ref/contrib/admin/actions/

+0

THX做到这一点,但行动是在左上角的名单? 它需要在每一行按钮;/ – Kamil

+0

我认为你应该使用ajax – Anoop