我正在设计一个管理界面,邀请邮件将发送给用户。我的邀请模型已经准备就绪,并且在我的邀请管理界面中,我可以看到添加的用户,管理员可以为其发送电子邮件邀请。
现在我要对此进行一些自定义。我想为每行添加一个SEND
按钮,该按钮实际上将向该用户发送电子邮件。发送电子邮件功能等已准备就绪。我不了解如何自定义此管理模板以添加send
按钮。有人可以帮忙吗??或至少将我指向正确的方向...
附言:它不必是发送按钮,它可以是“操作”下拉菜单的一部分,其中可以为选定的用户联合发送电子邮件。
最佳答案
关于每一行的发送按钮,您可以为模型(或ModelAdmin)提供一个新函数,该函数返回指向视图的相应HTML(或调用相应的AJAX函数)。只需将您的函数添加到ModelAdmin的“ list_display”中,并确保HTML标记不会被转义:
class MyModelAdmin(admin.ModelAdmin):
...
list_display = ('name', 'email', 'sender', 'send_email_html')
def send_email_html(self, obj):
# example using a javascript function send_email()
return '<a href="send_email(%s)">Send Now</a>' % obj.id
send_email_html.short_description = 'Send Email'
send_email_html.allow_tags = True
关于动作的使用,请在ModelAdmin中将“动作”定义为包含将Modeladmin,request,queryset作为参数的函数的列表:
def send_email_action(modeladmin, request, queryset):
whatever_you_want_to_do_with_request_and_queryset
send_email.short_description = 'Send email'
class MyModelAdmin(admin.ModelAdmin):
...
actions = [
send_email_action
]
关于python - Django Admin定制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5803547/