簡體   English   中英

在多個模板中顯示相同的表單

[英]show same form in multiple template

我有一個需要在兩個不同模板中顯示的表單。 一個是主頁,即在邀請頁面上僅顯示邀請表單,另一個在主頁中。 從主頁填寫表格時,如果有錯誤,則應從該表格的主頁(即邀請模板)中顯示錯誤。

我可以在邀請模板中顯示表單,並且錯誤顯示也可以正常工作,但是如果我從首頁填寫表單,即使我傳遞正確的值,也總是會收到“ 此字段為必填”錯誤。

這是我的代碼

def requestInvitation(request):
    form = InviteForm(request.POST or None)
    if form.is_valid():
        join = form.save(commit=False)
        email = form.cleaned_data.get('email')
        already_join, created = Invitation.objects.get_or_create(email=email)
        if created:
            already_join.invite_code = get_invite_code()
            already_join.save()
            send_request_received_email.delay(email,already_join.email_tracker)
            messages.success(request, "Thank you for your interest.")
        return HttpResponseRedirect('/')
    context = {"form": form}
    return render(request, 'invitation/invitation.html', context)


def index(request):
    form = InviteForm(request.POST or None)
    context = {"form": form}
    if not request.user.is_authenticated():
        return render(request, "home.html", context)
    else:
        return render(request, "home.html", context)


url(r'^request/$', requestInvitation, name='request-invitation'),

UPDATE

def index(request):
    form = InviteForm(request.POST or None)
    if form.is_valid():
        join = form.save(commit=False)
        print ('noin', join)
        email = form.cleaned_data.get('email')
        already_join, created = Invitation.objects.get_or_create(email=email)
        print ('already_join', already_join, created)
        if created:
            already_join.invite_code = get_invite_code()
            already_join.save()
            send_request_received_email.delay(email,already_join.email_tracker)
            messages.success(request, "Thank you for your interest")
            return HttpResponseRedirect('/')
        else:
            return HttpResponseRedirect('/invitations/request')
    # return HttpResponseRedirect('/invitations/request')
    context = {"form": form}
    return render(request, 'index.html', context)

我將索引視圖更改為此。 如果我填寫正確的值,則會保存數據,但是如果出現錯誤,則不會重定向到/ invitation / request頁面以顯示該錯誤。 如果我在form.is_invalid()的else條件下使用HttpResponseRedirect,則當我進入首頁時,我會立即重定向到/ invitation / request頁面。

您不是在主視圖中驗證並保存表單,因此基本上它保持空白

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM