0

我是学习 Django 的初学者,我有一个网站,其中有一部分允许您列出未完成的 . 到目前为止,我只想显示它,每当我使用带有第二个变量的过滤器 ({"items": todos} 我想在模板中显示它时,它都会返回 HTML 框架。

*当我不在 return 语句中添加此变量时,一切正常。我什至尝试从过滤器打印结果,它工作得很好。

def dashboard(response):
print(response.user.username)
if response.method == 'POST':
    form = CreateNewList(response.POST)
    if form.is_valid():
        n = form.cleaned_data['name']
        t = ToDoList(name=n)
        t.save()
        response.user.todolist.add(t)
else: 
     form = CreateNewList()
     todos = ToDoList.objects.filter(user=response.user)
     print(todos)
     return render(response, 'classy_main/dashboard.html',{"items": todos},{"form":form})
return render(response, 'classy_main/dashboard.html',{"form":form, "list": t})

这是 html 的外观(它将整个页面从“”返回到底部的脚本标签,但只是为了给你一个想法):

   <div class="news links nav-content">News</div>
  <div class="more links nav-content">More</div>
    <div class="notification">
      <a href="#" class="notification">
        <span><i class="fa fa-bell" style="font-size: 30px"></i></span>
        <span class="badge"></span>
      </a>
      
    </div>
    <div class="logOut">

是我得到的,而不是真正的页面。

4

1 回答 1

0

我终于修复了它,我只是为两种情况设置了相同的功能,这样你就可以为任何一种情况返回相同的东西,同时仍然执行不同的任务

def dashboard(response):
print(response.user.username)
if response.method == 'POST':
    form = CreateNewList(response.POST)
    if form.is_valid():
        n = form.cleaned_data['name']
        todos = ToDoList(name=n)
        todos.save()
        response.user.todolist.add(todos)
        items = ToDoList.objects.filter(user=response.user)
else: 
     form = CreateNewList()
     items = ToDoList.objects.filter(user=response.user)
     print(items)
return render(response, 'classy_main/dashboard.html',{"form":form, "items": items})

我仍然不知道为什么它会返回 html 骨架页面,无论如何现在我有一个新问题,当我刷新页面时,如果输入字段中有一些值(文本)它会再次将其添加到我的 todolist

于 2021-10-12T03:17:23.120 回答