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

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

Susan Sarandon
Susan Sarandon원래의
2024-11-30 03:49:18908검색

How to Handle Multiple Forms on a Single Django Page?

Django에서 단일 페이지의 여러 양식 처리

단일 Django 템플릿에서 여러 양식으로 작업할 때 어떤 양식을 결정하는 것이 중요합니다. 두 양식을 동시에 처리하지 않기 위해 제출 중입니다. 주요 과제는 POST 데이터 내에서 원하는 양식을 식별하는 것입니다.

다중 양식 옵션

이 문제를 해결하는 데는 여러 가지 접근 방식이 있습니다.

  • 별도의 URL: 각 양식에 고유한 URL을 할당합니다. 이로 인해 양식을 개별적으로 처리하는 여러 보기 기능이 생성됩니다.
  • 제출 버튼 값: POST 데이터의 제출 버튼 값을 검사하여 어떤 버튼이 사용되었는지 확인하세요.

해결책 예시

한 파일에 두 개의 양식이 있는 다음 시나리오를 고려해 보세요. 페이지: 예상 문구 형식 및 금지 문구 형식. 제출을 처리하기 위해 다음 코드를 사용합니다.

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')

이 예에서는 제출 버튼 값에 대한 POST 데이터를 확인합니다. 값을 기반으로 해당 양식을 인스턴스화하고 저장을 시도합니다. 접두사는 제출된 데이터가 양식에 올바르게 바인딩되도록 보장합니다.

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

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