亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為兩個不同的模板使用相同的視圖返回表單變量

為兩個不同的模板使用相同的視圖返回表單變量

DIEA 2023-03-16 11:24:32
我有一個顯示到訂閱頁面的訂閱表單視圖,我也想在主頁中顯示相同的表單,我嘗試使用{% include 'accounts/subscribe.html' %}并{% extends 'accounts/subscribe.html' %}在主頁中也嘗試過(來自類似問題的建議,但不相同)。我該如何解決這個問題?指向 subscribe.html 的視圖def subscribe(request):    if request.method == 'POST':        subscribe_form = EmailListForm(request.POST)        if subscribe_form.is_valid():            subscribe_form = subscribe_form.save()            return render(request, 'accounts/subscribe_done.html', {'name': subscribe_form.name})    else:        subscribe_form = EmailListForm()    return render(request, 'accounts/subscribe.html', {'sub_form': subscribe_form})
查看完整描述

3 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

據我所知,這樣做的方法是將上面的代碼復制到主視圖函數,或者提取一個獲取請求并返回所需表單對象的方法。無論哪種方式,您都可以像在訂閱頁面上一樣將表單對象傳遞給主頁模板。



查看完整回答
反對 回復 2023-03-16
?
慕容森

TA貢獻1853條經驗 獲得超18個贊

如果您想將相同的表單呈現到另一個頁面(視圖),您可以將該表單添加到視圖的上下文中,就像在訂閱頁面上所做的那樣。主頁視圖如下所示:


def home_page_view(request):    

    if request.method == 'POST':

        subscribe_form = EmailListForm(request.POST)

        if subscribe_form.is_valid():

            subscribe_form = subscribe_form.save()


            return render(request, 'accounts/subscribe_done.html', {'name': subscribe_form.name})


    else:

        context = {

            'section': 'home',

            'posts': Post.published.all().order_by('-publish')[:5],

            'subscribe_form': EmailListForm()

        }

        

    return render(request, 'pages/page/home.html', context=context)


查看完整回答
反對 回復 2023-03-16
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

使用{% extends 'xyz.html' %}工作嗎?我通常用它來擴展 html 模板。



查看完整回答
反對 回復 2023-03-16
  • 3 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號