SORU
8 EYLÜL 2009, Salı


Django bir sayfada birden fazla form işlemek için doğru yolu

Şablon bir sayfa iki formları bekliyor. Eğer sadece bir form kullanırsanız, şeyler bu tipik örnekte olduğu gibi güzel

if request.method == 'POST':
    form = AuthorForm(request.POST,)
    if form.is_valid():
        form.save()
        # do something.
else:
    form = AuthorForm()

Eğer birden fazla form ile birlikte çalışmak istiyorum, nasıl bir görünüm oluşturur ve diğer (yani hala istek.tek bir gönderme olduğumu söylerim POST ama ben sadece o oldu onun formu işlemek istiyorum)?


Bu bir çözümdürcevap yere göreexpectedphrasevebannedphrasefarklı formlar için düğmeleri gönder isimleri veexpectedphraseformvebannedphraseformformları vardır.

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

CEVAP
8 EYLÜL 2009, Salı


Birkaç seçeneğiniz vardır:

  1. İki form için eylem farklı bir URL koymak. O zaman iki farklı görünüm özellikleri iki farklı formları ile uğraşmak zorunda kalırsın.

  2. POST veri değerlerini düğme gönder okuyun. Düğmenin tıklandığını doğruyu söyleyebilirsin: How can I build multiple submit buttons django form?

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Amir Parmar

    Amir Parmar

    25 Kasım 2010
  • FF Radio

    FF Radio

    16 Mayıs 2008
  • InfoPuppet

    InfoPuppet

    15 Kasım 2011