대량 전자 메일 연락처에 Django 관리자 작업을 작성하고 있습니다.Django의 admin 인터페이스에 POST 양식 제공
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">
을 사용할 필요가 없다. 그러나 불행히도 모델의 admin 인터페이스없이 뷰 핸들러에 사용자 입력을 POST 할 수 없다. 버튼을 사용하면 원하지 않는 관리 인터페이스가 나타납니다.) email_form에서받은 입력을 처리 할 수 있도록 양식 POST를 자체적으로 POST (<form action="" method="post">
) 할 수있는 방법이 있습니까? 불필요한 URL과 불필요한 기능을 가진 입력을 처리하려고하면 코드가 작동하도록 URL을 하드 코딩하므로 방해가됩니다.