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