Tôi đã thêm hành động quản trị send_EMAIL thông qua admin.py.I muốn khi quản trị viên sử dụng hành động send_EMAIL cho người dùng được chọn sẽ hiển thị trang trung gian với tất cả người dùng được chọn và yêu cầu xác nhận.In trường hợp của tôi nó yêu cầu xác nhận nhưng khi tôi bấm vào nút "gửi Email" không có gì xảy ra và tôi đã trở lại view_list view mà không có hành động send_EMAIL được gọi.Vấn đề bằng cách sử dụng tác vụ quản trị Django với các trang trung gian
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)
templates/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 %}
Xin lỗi vì tiếng anh xấu .Plz giúp
'queryset' đến từ đâu? Mục nhập urlconf cho mục này là gì? –
Tôi tham khảo http://www.jpichon.net/blog/2010/08/django-admin-actions-and-intermediate-pages/) để triển khai các trang trung gian> Tôi thực sự không biết nhiều về Django vì vậy tôi đã đăng câu hỏi này. – Anshul