Python ';非类型';对象没有属性';条带';-怠慢

Python ';非类型';对象没有属性';条带';-怠慢,python,django,Python,Django,我的模型在Slagify系列中有问题 from django.db import models from django.contrib.auth.models import User from django.template.defaultfilters import slugify # Create your models here. class Pages(models.Model): title = models.CharField(max_length=255) slu

我的模型在Slagify系列中有问题

from django.db import models
from django.contrib.auth.models import User
from django.template.defaultfilters import slugify

# Create your models here.
class Pages(models.Model):
    title = models.CharField(max_length=255)
    slug = models.SlugField(blank=True)
    content =  models.TextField(blank=True)
    publish_at = models.DateTimeField(auto_now_add=True)
    update_at = models.DateTimeField(auto_now=True)
    order =  models.IntegerField(default=0)
    type_content = models.CharField(max_length=255)
    user = models.ForeignKey(User)  
    status =models.IntegerField(default=1)

    def __str__(self):
        return self.title   


    def save(self,  *args, **kwargs):

        if not self.slug:
            self.slug = slugify(self.title)

        #self.user=self.request.user
        super(Pages, self).save( *args, **kwargs)
我试着把代码self.slug=slugify(“slug的测试”)放进去,但问题仍然存在,但当他说保留信息时,没有问题

这是我的错误:

环境:

请求方法:发布请求URL:

Django版本:1.7.1 Python版本:3.4.2已安装的应用程序: ('django.contrib.admin'、'django.contrib.auth', 'django.contrib.contenttypes','django.contrib.sessions', 'django.contrib.messages'、'django.contrib.staticfiles'、'seo', 已安装“页面”、“站点选项”、“新闻”、“标签”、“类别”) 中间件:('django.contrib.sessions.Middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', “django.middleware.csrf.CsrfViewMiddleware”, 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.xframeoptions中间件')

回溯:文件 中的“C:\cms rock\vrockw\lib\site packages\django\core\handlers\base.py” 得到你的回应 111response=wrapped_callback(请求,*callback_args,**callback_kwargs)文件“C:\cms rock\vrockw\lib\site packages\django\contrib\admin\options.py” 包装中 584返回中的self.admin\u site.admin\u视图(view)(*args,**kwargs)文件“C:\cms rock\vrockw\lib\site packages\django\utils\decorators.py” _包装视图 105response=view\u func(请求,*args,**kwargs)文件“C:\cms rock\vrockw\lib\site packages\django\views\decorators\cache.py” 在_wrapped_view_func中 52response=view_func(请求,*args,**kwargs)文件“C:\cms rock\vrockw\lib\site packages\django\contrib\admin\sites.py” 在内部 204返回视图(请求,*args,**kwargs)文件“C:\cms rock\vrockw\lib\site packages\django\contrib\admin\options.py” 在添加视图中 1454返回self.changeform\u视图(请求、无、表单url、额外上下文)文件 中的“C:\cms rock\vrockw\lib\site packages\django\utils\decorators.py” _包装纸 29返回绑定的函数(*args,**kwargs)文件“C:\cms rock\vrockw\lib\site packages\django\utils\decorators.py” _包装视图 105response=view_func(请求,*args,**kwargs)文件“C:\cms rock\vrockw\lib\site packages\django\utils\decorators.py” 界函数 25return func.get(self,键入(self))(*args2,**kwargs2)文件“C:\cms rock\vrockw\lib\site packages\django\db\transaction.py” 内部的 394return func(*args,**kwargs)文件“C:\cms rock\vrockw\lib\site packages\django\contrib\admin\options.py” 在变换形式的视图中 1405self.save_model(请求、新_对象、表单、非添加)文件“C:\cms rock\cms\pages\admin.py”在save_model中 45保存中的obj.save()文件“C:\cms rock\cms\pages\models.py” 37super(Pages,self).save(*args,**kwargs)文件“C:\cms rock\vrockw\lib\site packages\django\db\models\base.py”在 拯救 591强制更新=强制更新,更新字段=更新字段)文件 中的“C:\cms rock\vrockw\lib\site packages\django\db\models\base.py” 保存库 619updated=self.\u保存表(原始、cls、强制插入、强制更新、使用、更新字段)文件 中的“C:\cms rock\vrockw\lib\site packages\django\db\models\base.py” _保存表格 700结果=self.\u do\u insert(cls.\u base\u manager,using,fields,update\u pk,raw)文件 中的“C:\cms rock\vrockw\lib\site packages\django\db\models\base.py” _插入 733using=using,raw=raw)文件“C:\cms rock\vrockw\lib\site packages\django\db\models\manager.py” 经理法 92返回getattr(self.get\u queryset(),name)(*args,**kwargs)文件“C:\cms rock\vrockw\lib\site packages\django\db\models\query.py” _插入 921return query.get_编译器(using=using).execute_sql(return_id)文件 “C:\cms rock\vrockw\lib\site packages\django\db\models\sql\compiler.py” 在执行sql中 920cursor.execute(sql,params)文件“C:\cms rock\vrockw\lib\site packages\django\db\backends\utils.py” 执行 85sql=self.db.ops.last_executed_查询(self.cursor、sql、params)文件 “C:\cms rock\vrockw\lib\site packages\mysql\connector\django\base.py” 在上次执行的查询中 371返回cursor.statement文件“C:\cms rock\vrockw\lib\site packages\mysql\connector\django\base.py” 在getattr 147在中返回getattr(self.cursor,attr)文件“C:\cms rock\vrockw\lib\site packages\mysql\connector\cursor.py” 陈述 858返回self.\u executed.strip()

异常类型:AttributeError at/admin/pages/pages/add/Exception 值:“非类型”对象没有属性“strip”


尝试从使用slugify函数,而不是使用
django.template.defaultfilters
。django.template.defaultfilters中的Slugify是模板过滤器,它应该在模板中使用。

我也遇到了同样的问题。我就是这样修好的

slagify(self.title)。\uuuu str\uuuu()


Slugify返回一个“SafeString”,它没有任何“strip()”函数。所以我得到了一个“str”,它可以工作。

这个错误意味着所创建模型的
title
属性没有值, 在对页面实例的标题进行slagify之前,需要确保页面实例具有必需的属性

下面的代码是一个很好的解决方法,但是您仍然需要知道为什么您的模型在保存时没有标题

。。。
类页面(models.Model):
...
def保存(自身、*args、**kwargs):
如果self.title而不是self.slug:
self.slug=slagify(self.title)
...
<
from autoslug import AutoSlugField

class Pages(Model):
    title = CharField(max_length=255)
    slug =  AutoSlugField(populate_from='title')
from django.db.models.signals import pre_save
from django.dispatch import receiver

@receiver(pre_save, sender=Pages)
def pre_save_pages(sender, instance, *args, **kwargs):
    if not instance.u_id:
        instance.slug = slugify(instance.title)