NameError 'unicode' не определен, эта ошибка возникает при использовании функции сохранения в django модели - PullRequest
0 голосов
/ 04 февраля 2020

Журнал ошибок с выхода:

NameError at /admin/todo/todomodel/add/
name 'unicode' is not defined
Request Method: POST
Request URL:    http://127.0.0.1:8000/admin/todo/todomodel/add/
Django Version: 2.2
Exception Type: NameError
Exception Value:    
name 'unicode' is not defined

Несколько дополнительных сведений о системе и исключении:

Местоположение исключения: C:\Users\PEE TEE\Desktop\ToDoApp\lib\site-packages\slugify.py in slugify, line 24

Python Исполняемый файл: C:\Users\PEE TEE\Desktop\ToDoApp\Scripts\python.exe

Python Версия: 3.7.6

Python Путь:
['C:\\Users\\PEE TEE\\Desktop\\ToDoApp\\src', 'C:\\Users\\PEE TEE\\Desktop\\ToDoApp\\Scripts\\python37.zip', 'C:\\Users\\PEE TEE\\Desktop\\ToDoApp\\DLLs', 'C:\\Users\\PEE TEE\\Desktop\\ToDoApp\\lib', 'C:\\Users\\PEE TEE\\Desktop\\ToDoApp\\Scripts', 'c:\\users\\pee tee\\appdata\\local\\programs\\python\\python37\\Lib', 'c:\\users\\pee tee\\appdata\\local\\programs\\python\\python37\\DLLs', 'C:\\Users\\PEE TEE\\Desktop\\ToDoApp', 'C:\\Users\\PEE TEE\\Desktop\\ToDoApp\\lib\\site-packages']

Время сервера: вт, 4 февраля 2020 03: 03:37 + 0000

А это моя модель:

from django.db import models
from django.db.models.signals import post_save
from slugify import slugify
# Create your models here.

class ToDoModel(models.Model):
   author = models.ForeignKey('auth.User', on_delete=models.CASCADE) 
   what_todo = models.CharField(max_length=255, default="Event to be done")
   date_todo = models.DateField(auto_now=False,auto_now_add=False) 
   slug = models.SlugField(null=True, blank=True) 

    def save(self, *args, **kwargs):
        if self.what_todo and not self.slug:
            self.slug = slugify(self.what_todo)
        return super(ToDoModel, self).save(*args, **kwargs)


    def __str__(self):
        return str(self.what_todo)

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

исправьте ваш код слуги.

def save(self, *args, **kwargs):
    if not self.slug:
        self.slug = slugify(self.what_todo)
    return super(ToDoModel, self).save(*args, **kwargs)
0 голосов
/ 04 февраля 2020

Вы используете код, связанный с Python 2, Python 3, переименованный в тип unicode в str. Подробности см. В https://docs.python.org/3/howto/unicode.html

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