2016-02-04 17 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