首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MultiValueDictKeyError:'content‘

MultiValueDictKeyError:'content‘
EN

Stack Overflow用户
提问于 2019-08-03 01:16:20
回答 1查看 447关注 0票数 0

我将使用django制作待办事项列表...我做了一些code...but,它抛出了一个multiplevaluekeyerror

我尝试了c= request.POST.get('content',False),但它总是给出假的值

views.py

代码语言:javascript
复制
from django.shortcuts import render
from django.http import HttpResponseRedirect
from .models import TodoItem

# Create your views here.

def home(request):
    return render(request, 'home.html')

def work(request):
    all_todo_items = TodoItem.objects.all()
    return render(request, 'work.html', {'all_items': all_todo_items})

def addTodo(request):
    c = request.POST['content']
    new_item = TodoItem(content = c)
    new_item.save()
    return HttpResponseRedirect('/work/')

def deleteTodo(request, todo_id):
    item_to_delete = TodoItem.objects.get(id=todo_id)
    item_to_delete.delete()
    return HttpResponseRedirect('/work/')

work.html

代码语言:javascript
复制
{% load static %}
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css" href="{% static 'css/work.css' %}">
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.0/css/all.css" integrity="sha384-lZN37f5QGtY3VHgisS14W3ExzMWZxybE1SJSEsQp9S+oqd12jhcu+A56Ebc1zFSJ" crossorigin="anonymous">
    <link rel="icon" href="{% static 'images/list.png' %}" type="image/png">
    <title>Tasks</title>
</head>

<body>
    <div class="container justify-content-center wrap1">
        <div class="text-center heading">
            <p><u>write your everyday task here!!!<u></p>
      </div>
    </div>

    <ul style="list-style: none; color: #1b0573; font-weight: bold;" class="text-center">
      {% for todo_item in all_items %}
        <li>
          <div class="row">
            <div class="col-sm-6">
              {{ todo_item.content }}
            </div>
            <div class="col-sm-2">
              {{ todo_item.date_created }}
            </div>
            <div class="col-sm-1">
                <form action="/deleteTodo/{{ todo_item.id }}" method="post" style="display: inline;">
                  {% csrf_token %}
                  <div class="form-group">
                    <button class="btn btn-outline-danger"><i class="fas fa-trash"></i></button>
                  </div>
                </form>
              </div>

        </li>
      {% endfor %}
    </ul>

    <div class="container">
      <div class="row">
        <div class="col-sm-11">
          <form action="/addTodo/" method="post">
            {% csrf_token %}
            <div class="form-group">
              <input type="text" class="form-control" placeholder="write your task" name="content">
            </div>
          </form>
        </div>
          <div class="col-sm-1">
            <form action="/addTodo/" method="post">
              {% csrf_token %}
              <div class="form-group">
                <button class="btn btn-outline-success"><i class="fas fa-plus"></i></button>
              </div>
            </form>
          </div>
      </div>
    </div>

    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
  </body>
</html>

urls.py

代码语言:javascript
复制
from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
    path('work/', views.work, name = 'work'),
    path('addTodo/', views.addTodo, name = 'work'),
    path('deleteTodo/<int:todo_id>/', views.deleteTodo, name = 'work'),
]

我没想到errors...but会抛出一个multiplevaluekeyerror

提升django.utils.datastructures.MultiValueDictKeyError:(MultiValueDictKeyError)内容'content‘

EN

回答 1

Stack Overflow用户

发布于 2019-08-03 01:30:16

您需要首先提交代码中包含<input name="content"><form>,以便在view中可以使用`request.POST“Conten值”来获取的值。试试这个:

代码语言:javascript
复制
<div class="container">
      <div class="row">
        <div class="col-sm-11">
          <form action="/addTodo/" method="post">
            {% csrf_token %}
            <div class="form-group">
              <input type="text" class="form-control" placeholder="write your task" name="content">
              <input type="submit" value="submit new task">
            </div>
          </form>
        </div>
      </div>
    </div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57330949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档