首页 > 解决方案 > 如何在使用 django 按下 html 按钮时将布尔值保存到数据库中

问题描述

如何将布尔值保存为 true 到数据库也路由到另一个页面。当我们按下继续按钮以使用 django 模型将 True 值保存到 db 时,也会路由到另一个页面作为欢迎页面。

#models.py
class Tutorial(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    is_tutorial = models.BooleanField(verbose_name=_('tutorial'), default=False)

#views.py
def tutorial_page(request):
   return render(request, "home/tutorial_page.html")

#urls.py
from . import views as homeview
path('tutorial-page/', homeview.tutorial_page)


#tutorialpage.html  
<article>
    <h2>demo</h2>
    <p>press <a href="https://localhost:8000/welcomepage/">continue</a> to skip the tutorial on next time </p>
</article>

标签: djangodjango-viewsdjango-forms

解决方案


您可以按用户找到教程模型并像这样更新它


#models.py
class Tutorial(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    is_tutorial = models.BooleanField(verbose_name=_('tutorial'), default=False)

#views.py
def tutorial_page(request):
   return render(request, "home/tutorial_page.html")

def welcomepage(request):
    tutorial = Tutorial.objects.filter(user=user).first()
    if tutorial:
        tutorial.is_tutorial = True
        tutorial.save()
    return render(request, "home/welcomepage.html")


#urls.py
from . import views as homeview
path('tutorial-page/', homeview.tutorial_page)
path('welcomepage/', homeview.welcomepage)


#tutorialpage.html
<article>
    <h2>demo</h2>
    <p>press <a href="https://localhost:8000/welcomepage/">continue</a> to skip the tutorial on next time </p>
</article>


#welcomepage.html 
<article>
    <h2>You are welcome!</h2>
</article>

推荐阅读