Я получаю ошибку 'MultiValueDictKeyError' в / store / AddProduct '. как я решаю это без использования request.POST.get () - PullRequest
0 голосов
/ 30 марта 2020

Я получаю сообщение об ошибке 'MultiValueDictKeyError' в / store / AddProduct '' des c 'в Django проекте. Я ищу решение по inte rnet и в итоге получаю request.POST.get () , но я хочу знать, почему оно выдает ошибку, я попытался request.POST [ 'des c'] раньше, и это работает для моего проекта входа пользователя. почему сейчас выдает ошибку вот моя системная информация:

  • Django версия: 3.0.4
  • Python версия: 3.8.2

вот view.py

from django.shortcuts import render
from .models import Gender, Category, SubCategory, Product, Company
db_gender = Gender.objects.all()
db_category = Category.objects.all()
db_subCategory = SubCategory.objects.all()
db_product = Product.objects.all()
db_company = Company.objects.all()
def add_product(request):
    if request.method == 'POST' :
        name = request.POST['name']
        descp = request.POST['desc']
        price = request.POST['price']
        offer_valid = request.POST['offer_valid']
        offer_value = request.POST['offer_value']
        company = request.POST['company']
        quantity = request.POST['quntity']
        category = request.POST['category']
        sub_category = request.POST['sub_category']
        size = request.POST['size']
        color = request.POST['color']

        return render(request, 'checkout.html', {'db_category': db_category, 'db_subcategory': db_subCategory})
    else:
        return render(request, 'checkout.html', {'db_category': db_category, 'db_subcategory': db_subCategory})

здесь не отображается ошибка для name = request.POST ['name'] & company = request.POST ['company'] [вот изображение] 1 но он показывает ошибку для всех полей, вот моя проверка. html файл Я скачал этот файл шаблона с https://colorlib.com/wp/template/estore/

<section class="checkout_area section_padding">
    <div class="container">
      <div class="billing_details">
        <div class="row">
          <div class="col-lg-8">
            <h3>Product Details</h3>
            <form class="row contact_form" action="add_product" method='POST'>
              {% csrf_token %}
              <div class="col-md-12 form-group p_star">
                <input type="text" class="form-control"  name="name">
                <span class="placeholder" data-placeholder="Product Name"></span>
              </div>
              <div class="col-md-12 form-group p_star">
                <input type="text" class="form-control" name="desc">
                <span class="placeholder" data-placeholder="Describtion"></span>
              </div>
              <div class="col-md-3 form-group p_star">
                <span class="placeholder" data-placeholder="Image"></span>
              </div>
              <div class="col-md-9 form-group ">
                <input type="file" class="form-control" id="image" name="image"  accept="image/*" />
              </div>  
              <div class="col-md-12 form-group p_star">
                <input type="text" class="form-control" id="company" name="company" />
                <span class="placeholder" data-placeholder="Company Name"></span>
              </div>
              <div class="col-md-12 form-group p_star">                
                  <select class="country_select" name='category' size="4">
                    <option value="1" disabled selected>Category</option>
                    {% for cat in db_category%}
                    <option value="2">{{cat.name}}</option>
                    {% endfor %}
                  </select>                
              </div>
              <div class="col-md-12 form-group p_star">                
                  <select class="country_select" name='sub_category' size="4">
                    <option value="1" disabled selected>Sub-Category</option>                   
                    {% for subcat in db_subcategory%}
                    <option value="2">{{subcat.name}}</option>
                    {% endfor %}                    
                  </select>                
              </div>
              <div class="col-md-3 form-group p_star">
                <input type="text" class="form-control" id="quntity" name="quntity" />
                <span class="placeholder" data-placeholder="Quntity"></span>
              </div>
              <div class="col-md-3 form-group p_star">                  
                <select class="country_select" name="size" size="3">
                  <option value="1" disabled selected>Size</option>
                  <option value="2">Country</option>
                  <option value="3">Country</option>
                  <option value="4">Country</option>
                  <option value="5">Country</option>
                  <option value="6">Country</option>
                </select>              
              </div>          
              <div class="col-md-3 form-group p_star">
                <select class="country_select" name="color">
                  <option value="1" disabled selected>Color</option>
                  <option value="2">Country</option>
                  <option value="4">Country</option>
                </select>
              </div>
              <div class="col-md-12 form-group">
                <div class="creat_account">
                  <input type="checkbox" id="offer_valid" name="offer_valid" />
                  <label for="f-option3">Offer Valid</label>
                </div>
              </div>              
              <div class="col-md-6 form-group p_star">
                <input type="text" class="form-control" id="price" name="price" />
                <span class="placeholder" data-placeholder="Price"></span>
              </div>
              <div class="col-md-6 form-group ">
                <input type="text" placeholder="Offer Value" class="form-control" id="offer_value" name="offer_value" />
              </div>
              <div class="col-md-12 form-group ">
                <button type="submit" value="submit" class="btn_3">
                  Submit
                </button>
              </div>
            </form>
          </div>
          <div class="col-lg-4">
            <div class="order_box">
              <h2>Your Order</h2>
            </div>
          </div>
        </div>
      </div>
    </div>
  </section>

Он работает в моем другом шаблоне входа, который я скачал с того же сайта здесь view.py для входа

from django.shortcuts import render, redirect
from django.contrib.auth.models import User, auth
def login(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']

        user = auth.authenticate(username=username, password=password)

        if user is not None:
            auth.login(request, user)
            print('Login succesfuly')
            return redirect('/')
        else:
            print('user does not exist')
            return redirect('/')
    else:
        return render(request, 'login.html')

здесь вход. html

<form class="row contact_form" action="login" method='POST' novalidate="novalidate">
                                {% csrf_token %}
                                <div class="col-md-12 form-group p_star">
                                    <input type="text" class="form-control" id="Username" name="username" value=""
                                        placeholder="Username">
                                </div>
                                <div class="col-md-12 form-group p_star">
                                    <input type="password" class="form-control" id="password" name="password" value=""
                                        placeholder="Password">
                                </div>
                                <div class="col-md-12 form-group">
                                    <div class="creat_account d-flex align-items-center">
                                        <input type="checkbox" id="f-option" name="selector">
                                        <label for="f-option">Remember me</label>
                                    </div>
                                    <button type="submit" value="submit" class="btn_3">
                                        log in
                                    </button>

                                </div>
                            </form>

он работает здесь же код Поэтому я просто хочу знать, почему это происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...