Django 自定义操作临时表单页面不提交



每次我提交它时,都会退出并返回到模型管理页面,而不执行任何操作
我正试图让一个临时页面用于审批目的。但它要么没有注意到提交,要么已经在其他应用程序的页面加载中进行了提交。

forms.py

class ReviewRequestTemplate(forms.Form):
emailtemplate = forms.CharField(widget=forms.Textarea, required=True)
employers_email = forms.EmailField(required=True)

管理员.py

class EmployerAdmin(TranslationAdmin):
list_display = ('name', 'website', 'review_request_sent',)
actions = ['request_review',]
def request_review(self, request, queryset):
context={}

RequestTemplateFormset = formset_factory(ReviewRequestTemplate, extra=0)
formset = RequestTemplateFormset(initial=[{'emailtemplate': f'Hello {employer.name} Review our service right NOW!','employers_email':employer.email} for employer in queryset])

if 'submit' in request.POST:
print('YEES')
formset = RequestTemplateFormset(request.POST)
if formset.is_valid():
print("formset is valid")
else:
print('nooo')

context['formset'] = formset
context['selected_employers'] = queryset
return render(request, 'admin/reviewrequest.html', context)

admin/reviewrequest.html

{%extends "admin/base_site.html" %}
{% block content %}
<form action="" method="post" name="requestreviewform">
{% csrf_token %}
<input type="checkbox" value="check" name="check"> do you want to send?
{%for form in formset%}
{{form.as_p}}
{%endfor%}
<input type="submit" name="request_review" value="Send request/s">

</form>
{% endblock %}

在stackoverflow上找到了另一个帖子,现在它工作了。使用Django管理操作与中间页面的问题

def admin_action(self, request, queryset):
RequestTemplateFormset = formset_factory(ReviewRequestTemplate, extra=0)
formset = RequestTemplateFormset(initial=[{'emailtemplate': f'Hello {employer.name} Review our servie right NOW!','employers_email':employer.email} for employer in queryset])

if request.POST.get('post'):
# process the queryset here
print('yess')
formset = RequestTemplateFormset(request.POST)
all_sent = request.POST.items()
return HttpResponse(all_sent)

else:
context = {
'title': "Are you sure?",
'queryset': queryset,
'action_checkbox_name': helpers.ACTION_CHECKBOX_NAME,
'formset': formset
}
return TemplateResponse(request, 'admin/test.html',
context)

最新更新