我正在使用django admin。
但目前每行都没有删除链接。他们删除了所选的东西,但我希望删除并编辑每一行模型。
我怎么能在django admin中做到这一点
答案 0 :(得分:2)
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'
答案 1 :(得分:0)
可以使用list_editable
管理员选项在Django管理员中内联编辑字段:https://docs.djangoproject.com/en/1.4/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_editable
但是,没有内置选项可以为每一行添加删除链接。这是你需要自己添加的东西。您需要使用模型上的属性组合添加到list_display
,以便在更改列表中获取“删除”文本,再加上一些JavaScript来确认删除。我不会在一个动作中触发删除。
由您决定是否要通过Ajax触发删除操作,或者是否要将它们重定向到删除视图等等。希望能让您入门。