slugify() 得到了一个意外的关键字参数 'allow_unicode'
slugify() got an unexpected keyword argument 'allow_unicode'
当我想从 product
创建新对象时,我得到了这个错误:
slugify() got an unexpected keyword argument 'allow_unicode'
这是我的模型:
class BaseModel(models.Model):
created_date = models.DateTimeField(auto_now_add=True)
modified_date = models.DateTimeField(auto_now=True,)
slug = models.SlugField(null=True, blank=True, unique=True, allow_unicode=True, max_length=255)
class Meta:
abstract = True
class Product(BaseModel):
author = models.ForeignKey(User)
title = models.CharField()
# overwrite your model save method
def save(self, *args, **kwargs):
title = self.title
# allow_unicode=True for support utf-8 languages
self.slug = slugify(title, allow_unicode=True)
super(Product, self).save(*args, **kwargs)
我也 运行 其他应用程序(博客)的相同模式,但我没有 运行 进入这个问题。
这个应用程序有什么问题?
升级 Django,在 1.9 版本中引入的那个参数 allow_unicode
,或者调用没有那个参数的函数。
由于 slugify
功能在其他应用程序中有效,这意味着您使用了不同的功能,至少在该文件中是通过 slugify
标识符引用的。这可能有几个原因:
- 您导入了错误的
slugify
函数(例如 slugify
template filter function [Django-doc];
- 您确实导入了正确的函数,但稍后您在文件中导入了另一个名为
slugify
的函数(可能通过别名或通过通配符导入);或
- 您在文件中定义了一个名为
slugify
的 class 或函数(可能在导入 slugify
之后)。
无论什么原因,它都指向 "wrong" 函数,因此它无法处理命名参数 allow_unicode
.
您可以通过重新组织导入或给 function/class 名称一个不同的名称来解决这个问题。
当我想从 product
创建新对象时,我得到了这个错误:
slugify() got an unexpected keyword argument 'allow_unicode'
这是我的模型:
class BaseModel(models.Model):
created_date = models.DateTimeField(auto_now_add=True)
modified_date = models.DateTimeField(auto_now=True,)
slug = models.SlugField(null=True, blank=True, unique=True, allow_unicode=True, max_length=255)
class Meta:
abstract = True
class Product(BaseModel):
author = models.ForeignKey(User)
title = models.CharField()
# overwrite your model save method
def save(self, *args, **kwargs):
title = self.title
# allow_unicode=True for support utf-8 languages
self.slug = slugify(title, allow_unicode=True)
super(Product, self).save(*args, **kwargs)
我也 运行 其他应用程序(博客)的相同模式,但我没有 运行 进入这个问题。 这个应用程序有什么问题?
升级 Django,在 1.9 版本中引入的那个参数 allow_unicode
,或者调用没有那个参数的函数。
由于 slugify
功能在其他应用程序中有效,这意味着您使用了不同的功能,至少在该文件中是通过 slugify
标识符引用的。这可能有几个原因:
- 您导入了错误的
slugify
函数(例如slugify
template filter function [Django-doc]; - 您确实导入了正确的函数,但稍后您在文件中导入了另一个名为
slugify
的函数(可能通过别名或通过通配符导入);或 - 您在文件中定义了一个名为
slugify
的 class 或函数(可能在导入slugify
之后)。
无论什么原因,它都指向 "wrong" 函数,因此它无法处理命名参数 allow_unicode
.
您可以通过重新组织导入或给 function/class 名称一个不同的名称来解决这个问题。