Python ';非类型';对象没有属性';条带';-怠慢
我的模型在Slagify系列中有问题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
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)