我通過admin.py.I添加了管理員操作send_EMAIL當管理員使用時需要send_EMAIL對於選定用戶的操作,它應顯示包含所有選定用戶的中間頁面並要求確認。我的情況下,它要求確認,但當我點擊「發送電子郵件」按鈕什麼也沒有發生,我回到了change_list視圖沒有send_EMAIL行動被調用。使用Django admin的問題使用中間頁面的操作
Admin.py
class MyUserAdmin(UserAdmin):
list_display = ['username', 'email', 'first_name', 'last_name', 'is_active', staff]
list_filter = ['groups', 'is_staff', 'is_superuser', 'is_active']
actions = ['send_EMAIL']
def send_EMAIL(self, request, queryset):
from django.core.mail import send_mail
if 'apply' in request.POST:
for i in queryset:
if i.email:
send_mail('Subject here', 'Here is the message.', '[email protected]',[i.email], fail_silently=False)
else:
self.message_user(request, "Mail sent successfully ")
else:
from django.http import HttpResponse
from django.template import RequestContext, loader
t = loader.get_template('admin/send_mail.html')
c = RequestContext(request, {'articles': queryset})
return HttpResponse(t.render(c),)
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
模板/ send_mail.html
{% extends "admin/base_site.html" %}
{% block content %}
<form action="" method="post">{% csrf_token %}
<p>The mail will be send to following users:</p>
<ul>{{ articles|unordered_list }}</ul>
<input type="hidden" name="action" value="send_EMAIL" />
<input type="submit" name="apply" value="Send Email" />
</form>
{% endblock %}
對不起,我的英文不好.Plz幫助
'queryset'從哪裏來?這是什麼urlconf條目? –
我參考http://www.jpichon.net/blog/2010/08/django-admin-actions-and-intermediate-pages/)實現中間頁面>我真的不知道多少關於Django,所以我發佈了這個問題。 – Anshul