首页 文章

'NoneType'对象没有属性'strip' - Slugify

提问于
浏览
2

我的模型在slugify中有问题

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测试”)仍然存在问题,但是当他说保持信息没有问题时

这是我的错误:

环境:请求方法:POST请求URL:http://xxx.xx.xx.xx:8000 / admin / pages / pages / add / 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', 'pages','site_options','news','tags','category')已安装的中间件:('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.XFrameOptionsMiddleware ')回溯:get_response 111中的文件“C:\ cms-rock \ vrockw \ lib \ site-packages \ django \ core \ handlers \ base.py”.response = wrapped_callback(request,* callback_args,** callback_kwargs)File“ C:\ CMS岩\ vrockw \李b \ site-packages \ django \ contrib \ admin \ options.py“在包装器584中 . 返回self.admin_site.admin_view(查看)(* args,** kwargs)文件”C:\ cms-rock \ vrockw \ lib \ site-packages \ django \ utils \ decorators.py“in _wrapped_view 105. response = view_func(request,* args,** kwargs)File”C:\ cms-rock \ vrockw \ lib \ site-packages \ django \ views \ decorators \ cache.py“in _wrapped_view_func 52. response = view_func(request,* args,** kwargs)File”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”在add_view 1454中 . 返回self . changeform_view(request,None,form_url,extra_context)_wrapper 29中的文件“C:\ cms-rock \ vrockw \ lib \ site-packages \ django \ utils \ decorators.py”返回bound_func(* args,** kwargs)文件_wrapped_view 105中的“C:\ cms-rock \ vrockw \ lib \ site-packages \ django \ utils \ decorators.py”.response = view_func(request,* args,** kwargs)文件“C:\ cms-rock \ vrockw \ LIB \站点包age \ django \ utils \ decorators.py“in bound_func 25. return func.get(self,type(self))(* args2,** kwargs2)File”C:\ cms-rock \ vrockw \ lib \ site-packages \ django \ db \ transaction.py“在内部394. return func(* args,** kwargs)文件”C:\ cms-rock \ vrockw \ lib \ site-packages \ django \ contrib \ admin \ options.py“在changeform_view 1405. self.save_model(request,new_object,form,not add)文件“C:\ cms-rock \ cms \ pages \ admin.py”中的save_model 45. obj.save()文件“C:\ cms- rock \ cms \ pages \ models.py“in save 37. super(Pages,self).save(* args,** kwargs)File”C:\ cms-rock \ vrockw \ lib \ site-packages \ django \ db保存591中的\ models \ base.py“ . force_update = force_update,update_fields = update_fields)save_base 619中的文件”C:\ cms-rock \ vrockw \ lib \ site-packages \ django \ db \ models \ base.py“ . updated = self._save_table(raw,cls,force_insert,force_update,using,update_fields)_save_table 700中的文件“C:\ cms-rock \ vrockw \ lib \ site-packages \ django \ db \ models \ base.py” . 结果= self._do_insert(cls._base_manager,using,fields,update_pk,原始)文件“C:\ cms-rock \ vrockw \ lib \ site-packages \ django \ db \ models \ base.py”在_do_insert 733中 . 使用= using,raw = raw)文件“C:\ cms-rock \在manager_method 92中的vrockw \ lib \ site-packages \ django \ db \ models \ manager.py“ . 返回getattr(self.get_queryset(),name)(* args,** kwargs)文件”C:\ cms-rock \在_insert 921中的vrockw \ lib \ site-packages \ django \ db \ models \ query.py“ . 返回query.get_compiler(using = using).execute_sql(return_id)文件”C:\ cms-rock \ vrockw \ lib \ site -packages \ django \ db \ models \ sql \ compiler.py“在execute_sql 920. cursor.execute(sql,params)文件”C:\ cms-rock \ vrockw \ lib \ site-packages \ django \ db \ backends \ utils.py“执行85. sql = self.db.ops.last_executed_query(self.cursor,sql,params)文件”C:\ cms-rock \ vrockw \ lib \ site-packages \ mysql \ connector \ django \ base .py“在last_executed_query 371.返回cursor.statement文件”C:\ cms-rock \ vrockw \ lib \ site-packages \ mysql \ connector \ django \ base.py“在getattr 147. return getattr(self.cursor,attr )文件“C:\ cms-rock \ vrockw \ lib \ site-packages \ mysql \ connect或\ cursor.py“在语句858中 . 返回self._executed.strip()异常类型:AttributeError at / admin / pages / pages / add / Exception值:'NoneType'对象没有属性'strip'

2 回答

  • 1

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

  • 1

    好吧,我遇到了同样的问题 . 这是我修复的方式 .

    slugify(self.title).__str__()

    Slugify返回一个“SafeString”,它没有任何“strip()”函数 . 所以我得到一个“str”,它的确有效 .

相关问题