簡體   English   中英

如何在django管理員更改列表頁面中刪除和編輯鏈接

[英]How can i have delete and edit link in django admin change list page

我正在使用django admin。

但目前每行都沒有刪除鏈接。 他們刪除了所選的東西,但我希望刪除和編輯每一行模型。

我怎么能在django admin中做到這一點

class MyAdmin(models.ModelAdmin):
    list_display = ('other_field', 'delete_link', 'edit_link')


    def delete_link(self, obj):
        info = obj._meta.app_label, obj._meta.module_name
        url = reverse('admin:%s_%s_delete' % info, args=(obj.id,))
        return '<a href="%s">Delete</a>' % url
    delete_link.allow_tags = True
    delete_link.short_description = 'Delete'

    def edit_link(self,obj):
        return u'<a href="/admin/%s/%s/%s">Edit</a>' % (
             obj._meta.app_label, obj._meta.module_name, obj.id)
    edit_link.allow_tags = True
    edit_link.short_description = "Edit"

更新:

def action_link(self, obj):
    app_name = obj._meta.app_label
    url_name = obj._meta.module_name
    data_id = obj.id

    return """
         <ul>
            <li><a href="/admin/{0}/{1}/{2}">Edit</a></li>
            <li><a href="/admin/{0}/{1}/{2}/delete">Delete</a></li>
         </ul>
         """.format(
         obj._meta.app_label, 
         obj._meta.module_name, 
         obj.id)
action_link.allow_tags = True
action_link.short_description = 'Actions'

可以使用list_editable管理選項在Django管理員內部編輯字段: httpslist_editable

但是,沒有內置選項可以為每一行添加刪除鏈接。 這是你需要自己添加的東西。 您需要使用模型上的屬性組合添加到list_display ,以便在更改列表中獲取“刪除”文本,再加上一些JavaScript來確認刪除。 我不會在一個動作中觸發刪除。

是否要通過Ajax觸發刪除操作,或者如果要將它們重定向到刪除視圖等,取決於您。希望能讓您開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM