TypeError в / product / создать ожидаемую строку или байтовый объект

Ошибка :TypeError в /product/ создать ожидаемую строку или байтовый объект

Внутренняя ошибка сервера: /product/create Traceback (последний вызов последним): файл "D:\mycodes\productsupport\prodsupportenv\lib\site-packages\django\core\handlers\exception.py", строка 47, во внутреннем ответе = get_response(запрос) Файл "D:\mycodes\productsupport\prodsupportenv\lib\site-packages\django\core\handlers\base.py", строка 179, в _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) Файл "D:\mycodes\productsupport\prodsupportenv\lib\site-packages\django\contrib\auth\decorators.py", строка 21, в _wrapped_view return view_func(request, *args, **kwargs) Файл "D:\mycodes\productsupport\productsupport-project\product\views.py", строка 44, в файле create product.save()"D:\mycodes\productsupport\prodsupportenv\lib\site-packages\django\db\models\base.py", строка 750,в save self.save_base(using=using, force_insert=force_insert, File "D:\mycodes\productsupport\prodsupportenv\lib\site-packages\django\db\models\base.py", строка 787, в save_base updated = self._save_table(файл "D: \ mycodes \ productsupport \ prodsupportenv \ lib \ site-packages \ django \ db \ models \ base.py", строка 892, в _save_table results = self.do_insert (cls.base_manager, using, fields, return_fields, raw) Файл "D: \ mycodes \ productsupport \ prodsupportenv \ lib \ site-packages \ django \ db \ models \ base.py", строка 930, в диспетчере возврата do_insert.insert(файл "D:\mycodes\productsupport\prodsupportenv\lib\site-packages\django\db\models\manager.py", строка 85, в manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) Файл "D:\mycodes\productsupport\prodsupportenv\lib\site-packages\django\db\models\query.py", строка 1249, ввставить return query.get_compiler(using=using).execute_sql(return_fields) Файл "D:\mycodes\productsupport\prodsupportenv\lib\site-packages\django\db\models\sql\compiler.py", строка 1394, в execute_sql для sql параметры в self.as_sql(): файл "D:\mycodes\productsupport\prodsupportenv\lib\site-packages\django\db\models\sql\compiler.py", строка 1337, в as_sql value_rows = [ File "D:\mycodes\productsupport\prodsupportenv\lib\site-packages\django\db\models\sql\compiler.py", строка 1338, в [self.prepare_value(field, self.pre_save_val(field, obj)) для поле в полях] Файл "D:\mycodes\productsupport\prodsupportenv\lib\site-packages\django\db\models\sql\compiler.py", строка 1338, в [self.prepare_value(field, self.pre_save_val(field, obj)) для поля в полях] Файл "D:\mycodes \ productsupport \ prodsupportenv \ lib \ site-packages \ django \ db \ models \ sql \ compiler.py ", строка 1279, в файле prepare_value value = field.get_db_prep_save(value, connection=self.connection) Файл" D: \ mycodes \ productsupport \ prodsupportenv \ lib \ site-packages \ django \ db \ models \ fields_init.py ", строка 823, в get_db_prep_save вернуть self.get_db_prep_value(значение, соединение = соединение, подготовлено =False) Файл" D: \ mycodes \ productsupport \ prodsupportenv \ lib \ site-packages \ django \ db \ models \ fields_init.py ", строка 1378, в get_db_prep_value value = self.get_prep_value(value) Файл" D: \ mycodes \ productsupport \ prodsupportenv \ lib \ site-packages \ django \ db \ models \ fields_init.py ", строка 1357, в get_prep_value value = super().get_prep_value(value) Файл "D: \ mycodes \ productsupport \ prodsupportenv \ lib \ site-packages \ django \ db \ models \ fields_init.py", строка 1217, в get_prep_value return self.to_python(значение) Файл "D: \ mycodes \ productsupport \ prodsupportenv \ lib \ site-packages \ django \ db \ models \ fields_init.py ", строка 1318, в to_python parsed = parse_datetime(value) Файл"D:\mycodes\productsupport\prodsupportenv\lib\site-packages\django\utils\dateparse.py", строка 107, в parse_datetime match = datetime_re.match(value) TypeError: ожидаемая строка или байтовый объект [03 / Sep / 2020 11:45:14] "POST /product/ create HTTP / 1.1" 500 148871

views.py

from django.shortcuts import render,redirect,reverse
from django.contrib.auth.decorators import login_required
from .models import Product
from django.utils import timezone
# from .forms import ProductForm
from datetime import datetime

# Create your views here.

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

@login_required
def create(request):
    # if request.method == 'POST':
        # user = UserProfile.objects.get(user=request.user)
    #     import ipdb;ipdb.set_trace()
    #     request.POST['hunter']=request.user
    #     request.POST['votes_total']=2
    #     request.POST['pub_date']=datetime.now()
    #     form = ProductForm(request.POST, request.FILES,user=request.user)
    #     if form.is_valid():
    #         form.save()
    #     return redirect('home')
    # else:
    #     return render(request,'product/create.html')

    if request.method=='POST':
        # import ipdb;ipdb.set_trace()
        if (request.POST['title'] and request.POST['url'] and request.POST['body'] and request.FILES['image'] and request.FILES['icon']):
            
            product=Product()
            product.title=request.POST['title']
            if request.POST['url'].startswith('http://') or request.POST['url'].startswith('https://'):
                product.url=request.POST['url']
            else:
                product.url = 'http://'+ request.POST['url']

            product.body=request.POST['body']
            product.icon = request.FILES['icon']
            product.image = request.FILES['image']
            product.pub_date=timezone.datetime.now
            product.hunter=request.user
            product.save()
            return redirect('home')

        else:
            return render(request,'product/create.html',{'error':'fill all the Fields'})

    else:
        return render(request,'product/create.html')

create.html

{

% extends 'base.html' %}

{% block content %}
{% load static %}
<div class="jumbotron text-center">
  <h1><img src="{% static 'login.png'  %}" alt="" height="50"> Create</h1>
  <div class="container">
    <br>
    {% if error %}

    {{error}}

    {% endif %}


    <form class="" action="{% url 'create' %}" method="POST" enctype="multipart/form-data" >
      {% csrf_token %}
      Title:
      <br>
      <input class="text-center " type="text" name="title">
      <br>
      <br>
      URL:
      <br>
      <input class="text-center " type="text" name="url">
      <br>
      <br>
      Description:
      <br>
      <textarea name="body" rows="5" cols="50"></textarea>
      <br>
      <br>
      Icon:
      <input type="file" name="icon">
      <br>
      <br>
      Image:
      <input type="file" name="image">
      <br>
      <br>
      <input class="text-center btn btn-primary" type="submit" name="" value="add product">

    </form>

  </div>
</div>

{% endblock %}

models.py

from django.db import models
from django.contrib.auth.models import User

# Create your models here.
class Product(models.Model):
    title=models.CharField(max_length=200)
    url=models.TextField()
    image=models.ImageField(upload_to='images/')
    icon=models.ImageField(upload_to='images/')
    body = models.TextField()

    hunter=models.ForeignKey(User,on_delete=models.CASCADE)
    votes_total=models.IntegerField(default=1)
    pub_date=models.DateTimeField()

    def pub_date_pretty(self):
        return self.pub_date.strftime('%b %e %Y')

    def summary(self):
        return self.body[:100]+'...'

    def __str__(self):
        return self.title

0 ответов

Другие вопросы по тегам