Я пишу действие администратора Django для массовых контактов электронной почты. Действие определяется следующим образом:POSTING формы в интерфейсе администратора Django
def email_selected(self,request,queryset):
rep_list = []
for each in queryset:
reps = CorporatePerson.objects.filter(company_id = Company.objects.get(name=each.name))
contact_reps = reps.filter(is_contact=True)
for rep in contact_reps:
rep_list.append(rep)
return email_form(request,queryset,rep_list)
email_form существует как вид и заполняет шаблон с этим кодом:
def email_form(request,queryset,rep_list):
if request.method == 'POST':
form = EmailForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
send_mail(
cd['subject'],
cd['message'],
cd.get('email','[email protected]'),['[email protected]'],
)
return HttpResponseRedirect('thanks')
else:
form = EmailForm()
return render_to_response('corpware/admin/email-form.html',{'form':form,})
и шаблон существует следующим образом:
<body>
<form action="/process_mail/" method="post">
<table>
{{ form.as_table }}
</table>
<input type = "submit" value = "Submit">
</form>
</body>
/process_mail/жестко привязан к другому представлению в urls.py - что является проблемой. Мне бы очень понравилось, так что мне не нужно было использовать <form action="/process_mail/" method="post">
, но, к сожалению, я не могу показать POST пользовательские входы обработчику вида без интерфейса администратора для перезагрузки модели в его месте (когда я попал в submit с, появляется интерфейс администрирования, который я не хочу.)
Есть ли способ, которым я мог бы сделать форму POST для себя (<form action="" method="post">
), чтобы я мог обрабатывать входы, полученные в email_form? Попытка обработки ввода с помощью посторонних URL-адресов и ненужных функций беспокоит меня, поскольку я жестко кодирует URL-адреса для работы с кодом.