Django.utils.datastructures.MultiValueDictKeyError: 'title' django

views.py

class ProductsCreate(CreateView):
   model = Products
   template_name = "productscreate.html"
   serializer = Productserialize
   success_url=reverse_lazy('productslist')



def productsAdd(request):
    if request.method == "POST":
        product=Products()
        product.title = request.POST['title']
        product.description = request.POST['description']
        product.image = request.FILES.get('image')
        product.save()
        return render(request,'productslist.html')
    else:
        return render(request,'productscreate.html')

form.html

<form data-bind="submit: save" enctype="multipart/form-data" >  
  {% csrf_token %}
   
    <table border="1">
<tr>
    <td>Title:
    <input type="text" name="title" id="title" data-bind="text: $data.title"></td>
    <br>
</tr>
<tr>
    <td>Description:
    <textarea name="description" id="description" data-bind="text: $data.description">Description</textarea></td>
    <br>
</tr>
<tr>
    <td>Image:
    <input type="file" name="image" id="image" ></td>
    <br>
</tr>

<tr>
    <td><button type="button" id="submit" data-bind="click: save">Submit</button></td>
</tr>

</table>
</form>
<script>
  var ViewModel = function () {
      var self = this;
      self.title = ko.observable("");
      self.description = ko.observable("");
      self.save = function () {
          var formdata = new FormData();
          formdata.append('image',  $('#image')[0].files[0]);
          // formdata.append('title', ko.observable(""));
          // formdata.append('description', ko.observable(""));
          formdata = {
          title: self.title,
          description: self.description,
          };
  
          console.log(formdata)
          $.ajax({
              type: 'POST',
              url: "{% url 'productsadd' %}",
              data: formdata,
              headers: {'X-CSRFToken': csrftoken},
              processData: false,                
              contentType: false,
              success: function (data){
                  alert('The post has been created!')
                  window.location = '{% url "productslist" %}'; 
              },
              error: function () {
                  alert("fail");
              }
          });
};
  };
  ko.applyBindings(new ViewModel())
  </script>

Когда я создаю новую форму, она показывает ошибку multidict key в заголовке, я не знаю, где проблема в заголовке. Я задал то же самое html имя в представлении, но оно показывает ошибку. Я привел код html и код представления, пожалуйста, проверьте. Я пробовал много раз, но не могу убрать эту ошибку. Пожалуйста, помогите мне решить эту проблему Заранее спасибо

Вернуться на верх