我正在一个简单的Django项目中工作,我想为admin中的每个模型对象添加一个按钮,并且可以使用以下命令创建它:
在admin.py
constexpr auto MaxEventSize()
但是当我执行它时,会给出关键错误:
template<typename T>constexpr T MaxEventSize()
那么如何解决此错误? 要么 还有其他方法可以向我的验证按钮添加功能吗?
答案 0 :(得分:0)
如果您要谈论为每个模型创建一个新动作,则可以执行以下操作:
from django.conf.urls import url
from django.contrib import admin
from django.http import HttpResponseRedirect
from django.utils.html import format_html
class RegistrationAdmin(admin.ModelAdmin):
list_display = ['username', 'button']
def button(self, obj):
return format_html('<a href="new-action/{}">{}</a>', obj.id, obj.username)
def get_urls(self):
urls = super().get_urls()
my_urls = [
url(r'^new-action/(?P<id>[0-9]+)$', self.new_action)
]
return my_urls + urls
def new_action(self, request, id):
if request.user.is_authenticated:
# your stuff
self.message_user(request, 'ID {} successfully processed'.format(id))
return HttpResponseRedirect('/admin')
答案 1 :(得分:0)
解决方案对我来说完全正常。 但是那些有相同问题的人可能会要求: 网址方法:
my_urls = [
url(r'^new-action/(?P<id>[0-9]+)$', self.new_action)
]
属于 django.conf.urls 因此将此行添加到admin.py:
from django.conf.urls import url
或者您也可以将django.urls中的路径方法用作:
my_urls = [
path('new-action/<int:id>', self.new_action)
]
有关更多信息: 访问https://docs.djangoproject.com/en/2.2/topics/http/urls/