私はdjangoadminを使用しています。
しかし、現在、すべての行の前に削除リンクはありません。選択したものを削除しましたが、モデルのすべての行で削除して編集したいと思います。
djangoadminでそれを行うにはどうすればよいですか
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管理者内でフィールドをインラインで編集可能にすることができます: https ://docs.djangoproject.com/en/1.4/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_editable
ただし、すべての行に削除リンクを追加する組み込みのオプションはありません。それはあなたが自分で追加する必要があるものです。list_display
変更リストの「削除」テキストを取得するには、モデルのプロパティを組み合わせてに追加する必要があります。さらに、削除を確認するためのJavaScriptを使用する必要があります。1回のアクションで削除を実行することはありません。
Ajaxを介して削除アクションを実行するか、削除ビューなどにリダイレクトするかは、あなた次第です。それで始められることを願っています。