>백엔드 개발 >파이썬 튜토리얼 >단일 Django 뷰에서 여러 양식을 처리하는 방법은 무엇입니까?

단일 Django 뷰에서 여러 양식을 처리하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-18 22:24:02756검색

How to Handle Multiple Forms in a Single Django View?

Django의 다중 양식 처리

Django에서는 단일 페이지에서 여러 양식을 처리하는 것이 어려울 수 있습니다. 이 시나리오를 해결하기 위해 두 가지 실행 가능한 접근 방식을 살펴보겠습니다.

접근 방법 1: 양식에 대한 별도의 URL

각 양식에 고유한 URL을 할당합니다. 이로 인해 제출물을 처리하는 별도의 보기 기능이 생성됩니다. 이 방법의 장점은 단순성과 코드 구성에 있습니다.

접근 방법 2: 제출 버튼 값 활용

양식을 같은 페이지에 유지하려면, 제출 버튼 값을 기준으로 구분할 수 있습니다. 다음 코드 스니펫은 이 접근 방식을 보여줍니다.

if request.method == 'POST':
    if 'bannedphrase' in request.POST:
        bannedphraseform = BannedPhraseForm(request.POST, prefix='banned')
        if bannedphraseform.is_valid():
            bannedphraseform.save()
        expectedphraseform = ExpectedPhraseForm(prefix='expected')
    elif 'expectedphrase' in request.POST:
        expectedphraseform = ExpectedPhraseForm(request.POST, prefix='expected')
        if expectedphraseform.is_valid():
            expectedphraseform.save()
        bannedphraseform = BannedPhraseForm(prefix='banned')
else:
    bannedphraseform = BannedPhraseForm(prefix='banned')
    expectedphraseform = ExpectedPhraseForm(prefix='expected')

이 코드에서 banphrase 및 Expectphrase는 제출 버튼의 이름이고,bannedphraseform 및 Expectphraseform은 해당 형식입니다. 요청의 POST 데이터에 이러한 버튼이 있는지 확인하면 어떤 양식이 제출되었는지 식별하고 그에 따라 처리할 수 있습니다.

위 내용은 단일 Django 뷰에서 여러 양식을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.