我对我的模特儿有问题
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(“测试代码段塞”)和问题放在一起,但是当他说保持信息没有问题时
这是我的错误:
环境:请求方法: 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.contenttype”、“django.contrib.session”、“django.contrib.Messages”、“django.contrib.Messages”、“django.contrib.staticfiles”、“seo”、“页面”、“网站选项”、“新闻”、“标记”、“类别”)‘django.medileware.Common.Common中间件’,‘django.medileware.csrf.CsrfView中间件’,'django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.auth.middleware.SessionAuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware') 回溯:"C:\cms-rock\vrockw\lib\site-packages\django\core\handlers\base.py“文件在get_response 111中。响应=包装584中的"C:\cms-rock\vrockw\lib\site-packages\django\contrib\admin\options.py“文件wrapped_callback(请求、*callback_args、**callback_kwargs)。在"C:\cms-rock\vrockw\lib\site-packages\django\utils\decorators.py“105中返回self.admin_site.admin_view(视图)(*args,**kwargs)文件_wrapped_view。响应= "C:\cms-rock\vrockw\lib\site-packages\django\views\decorators\cache.py“(请求,*args,**kwargs) _wrapped_view_func 52中的文件_wrapped_view_func。响应= "C:\cms-rock\vrockw\lib\site-packages\django\contrib\admin\sites.py“(请求,*args,**kwargs)内部204号文件view_func。返回视图(请求,*args,**kwargs)文件"C:\cms-rock\vrockw\lib\site-packages\django\contrib\admin\options.py“在add_view 1454。在"C:\cms-rock\vrockw\lib\site-packages\django\utils\decorators.py“29中返回self.changeform_view(request,None,form_url,extra_context)文件在"C:\cms-rock\vrockw\lib\site-packages\django\utils\decorators.py“105中返回bound_func(*args,**kwargs)文件_wrapped_view。响应= "C:\cms-rock\vrockw\lib\site-packages\django\utils\decorators.py“(请求,*args,**kwargs) bound_func 25中的文件bound_func。返回内部394中的func.get(self,类型(Self)(*args2 2,**kwargs2 2)文件"C:\cms-rock\vrockw\lib\site-packages\django\db\transaction.py“。在"C:\cms-rock\vrockw\lib\site-packages\django\contrib\admin\options.py“1405中返回changeform_view文件(*args,**kwargs)。Self.save_model(请求、new_object、表单,而不是添加) save_model 45中的文件"C:\cms-rock\cms\pages\admin.py“。obj.save()文件"C:\cms-rock\cms\pages\models.py“在保存37中。超级(页面,自我).save( *args,**kwargs)文件.save在保存591。( "C:\cms-rock\vrockw\lib\site-packages\django\db\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“=self._save_table( _save_table 700中的raw、cls、force_insert、force_update、using、update_fields)。"C:\cms-rock\vrockw\lib\site-packages\django\db\models\base.py“= self._do_insert(cls._base_manager,733,field,update_pk,raw) _do_insert 733中的文件。"C:\cms-rock\vrockw\lib\site-packages\django\db\models\manager.py“( using=using,raw=raw) manager_method 92中的文件在"C:\cms-rock\vrockw\lib\site-packages\django\db\models\query.py“921中返回getattr(self.get_queryset(),name)(*args,**kwargs)文件_insert。在query.get_compiler(using=using).execute_sql(return_id) 920中返回execute_sql文件"C:\cms-rock\vrockw\lib\site-packages\django\db\models\sql\compiler.py“。执行85中的"C:\cms-rock\vrockw\lib\site-packages\django\db\backends\utils.py“文件cursor.execute(cursor.execute,params)。"C:\cms-rock\vrockw\lib\site-packages\mysql\connector\django\base.py“= self.db.ops.last_executed_query(self.cursor,sql,params) last_executed_query 371中的文件在"C:\cms-rock\vrockw\lib\site-packages\mysql\connector\django\base.py“getattr 147中返回cursor.statement文件。在语句858中返回getattr(self.cursor,attr)文件self.cursor。返回self._executed.strip() 异常类型: AttributeError at /admin/pages/pages/add/ Exception值:'NoneType‘对象没有属性’条带‘
发布于 2014-12-04 19:18:21
尝试使用django.utils.text而不是django.template.defaultfilters中的slugify函数。django.template.defaultfilters中的Slugify是模板过滤器,应该在模板中使用。
发布于 2014-12-30 20:54:27
我也有同样的问题。我就是这么修好的。
slugify(self.title).__str__()
Slugify返回一个"SafeString“,并且它没有任何”条带()“函数。所以我得到了一个"str“,它起作用了。
发布于 2021-02-04 10:04:10
此错误意味着所创建模型的title属性没有值,您需要确保页面实例在删除其标题之前具有所需的属性。
下面的代码是一个很好的解决方法,但是您仍然需要知道为什么您的模型在保存时没有标题。
...
class Pages(models.Model):
...
def save(self, *args, **kwargs):
if self.title and not self.slug:
self.slug = slugify(self.title)
...对您来说,最佳的解决方案是使用Django Autoslug库,这将使您免于为段塞字段设置值的所有麻烦。
看一看:
from autoslug import AutoSlugField
class Pages(Model):
title = CharField(max_length=255)
slug = AutoSlugField(populate_from='title')https://stackoverflow.com/questions/27301853
复制相似问题