Почему django возвращает мой HTML-код при использовании переменной со значением, сохраненным из фильтра?

#python #django

Вопрос:

Я новичок в изучении Django, и у меня есть веб — сайт с частью, которая позволяет вам перечислять ваши незавершенные работы . До сих пор я хотел только отобразить его, и всякий раз, когда я использую фильтр с этой второй переменной ({«элементы»: 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">
 

это то, что я получаю взамен реальной страницы.

Ответ №1:

Я, наконец, исправил это, я просто установил одинаковую возможность для обоих случаев, чтобы вы могли возвращать одно и то же в любом случае, все еще выполняя разные задачи

 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-скелета, в любом случае, теперь у меня новая проблема, когда я обновляю страницу, если в поле ввода есть какое-то значение(текст), оно снова добавляет его в мой список задач