Django change_list自定义添加字段和操作按钮以发送电子邮件

问题描述

我是一个初学者,以前没有工作过覆盖django管理模板。我在此诚恳道歉的做法可能真的很错误。 我希望修改django管理员更改视图,以包括电子邮件和电子邮件主题的表单字段。目前,“提交”按钮甚至没有出现。我应该如何进行?

admin.py

df['check'] = df['check'].where(df.situation.str.contains('under decoration',na = True),'decoration is in the content') 

forms.py

   id    room   area           situation                         check
0   1   A-102  world  under construction  decoration is in the content
1   2     NaN     24  under construction  decoration is in the content
2   3    B309    NaN                 NaN                           nan
3   4   C·102     25    under decoration           incorrect room name
4   5  E_1089  hello    under decoration         area is not a numbers
5   6      27    NaN          under plan  decoration is in the content
6   7      27    NaN                 NaN                           nan

这是覆盖的change_form.html

class EvaluationAdmin(admin.ModelAdmin):
    change_form_template = "admin/evalutations/change_form.html"
    form = EvaluationForm

    def has_change_permission(self,request,obj=None):
        if obj is not None:
            if request.user.is_superuser:
                return True
            elif obj.decision == "rejected" or obj.decision == "success":
                return False
            elif request.user == obj.first_eval and (obj.is_second_review == False):
                return True
            elif request.user == obj.second_eval:
                return True
        return False

    def has_delete_permission(self,obj=None):
        if obj is not None:
            if request.user.is_superuser:
                return True
            elif request.user == obj.first_eval and (obj.is_second_review == False):
                return True
            elif request.user == obj.second_eval:
                return True
        return False

    def response_change(self,obj,form_url=''):
        if "_send_email" in request.POST:
            form = EvaluationForm(request.POST)
            receiver_email = self.get_queryset(request).filter(id=obj.id).lead.user.email
            sender_email = "pratyushadhikary1152@gmail.com"
            if form.is_valid:
                message = form.cleaned_data["message"]
                subject = form.cleaned_data["subject"]
                send_mail(
                    subject,message,sender_email,[receiver_email],fail_silently=False,)
                return HttpResponseRedirect(".")
        return super().response_change(request,obj)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)