한 관점에서 두 형태를 처리하는 방법은 무엇입니까?
-
23-08-2019 - |
문제
하나의 템플릿에 완전히 다른 두 가지 형태가 있습니다. 한 관점에서 처리하는 방법? 어떤 양식이 제출되었는지 어떻게 구별 할 수 있습니까? Prefix를 사용하여 어떻게 그것을 압류 할 수 있습니까? 아니면 별도의 견해를 작성하는 것이 낫습니까?
문안 인사
크리스
해결책
개인적으로, 나는 하나의보기를 사용하여 각 양식의 게시물을 처리합니다.
반면에 사용 된 양식을 나타내는 숨겨진 입력 요소를 사용할 수 있습니다.
<form action="/blog/" method="POST">
{{ blog_form.as_p }}
<input type="hidden" name="form-type" value"blog-form" /> <!-- set type -->
<input type="submit" value="Submit" />
</form>
...
<form action="/blog/" method="POST">
{{ micro_form.as_p }}
<input type="hidden" name="form-type" value"micro-form" /> <!-- set type -->
<input type="submit" value="Submit" />
</form>
다음과 같은 견해로 :
def blog(request):
if request.method == 'POST':
if request.POST['form-type'] == u"blog-form": # test the form type
form = BlogForm(request.POST)
...
else:
form = MicroForm(request.POST)
...
return render_to_response('blog.html', {
'blog_form': BlogForm(),
'micro_form': MicroForm(),
})
... 그러나 다시 한 번, 양식 당 하나의보기 (보기가 게시물 만 허용하더라도) 위의 작업을 시도하는 것보다 간단하다고 생각합니다.
다른 팁
Ayaz가 말했듯이, 당신은 제출 버튼을 형성하기 위해 독특한 이름을 제시해야합니다.
<form action="." method="post">
......
<input type="submit" name="form1">
</form>
<form action="." method="post">
......
<input type="submit" name="form2">
</form>
#view
if "form1" in request.POST:
...
if "form2" in request.POST:
...
두 형태가 완전히 다르면 두 가지 다른 견해로 처리하는 것은 확실히 아프지 않을 것입니다. 그렇지 않으면 '숨겨진 입력 요소'트릭을 사용할 수 있습니다. Zacherates 다루었 다. 또는 항상 각각을 줄 수 있습니다 submit
요소 a 독특한 이름과 그 양식에 따라 어떤 양식을 제출했는지에 따라 차별화됩니다.
제휴하지 않습니다 StackOverflow