Python 我重写了save()方法,但新代码只应用于新记录
我需要用小写字母写标题。我覆盖了Python 我重写了save()方法,但新代码只应用于新记录,python,python-3.x,django,Python,Python 3.x,Django,我需要用小写字母写标题。我覆盖了save()方法并包含了self.title.lower(),这对于我创建的任何新记录都非常有效。但是,当我修改现有记录时,标题不会更改为小写?有人知道为什么吗?或者有人能告诉我相关文档的方向吗 我在表中有一个多对多字段,我是否应该更新我的m2m\u changed信号以包含解决该问题的代码 def save(self, *args, **kwargs): if not self.slug: self.slug = unique_slug_generato
save()
方法并包含了self.title.lower()
,这对于我创建的任何新记录都非常有效。但是,当我修改现有记录时,标题不会更改为小写?有人知道为什么吗?或者有人能告诉我相关文档的方向吗
我在表中有一个多对多字段,我是否应该更新我的m2m\u changed
信号以包含解决该问题的代码
def save(self, *args, **kwargs):
if not self.slug:
self.slug = unique_slug_generator(self)
self.title = self.title.lower()
super(CategoryTree, self).save(*args, **kwargs)
else:
super(CategoryTree, self).save(*args, **kwargs)
根据您的代码,仅当实例没有
slug
(通常在创建对象时)时,才会降低标题。因此,我建议在整个表中使用更新操作
请注意,这是一个一次性操作,它会将每个title
值更新为相应的小写值
或者,您可以将保存(…)
方法修改为
def save(self, *args, **kwargs):
if not self.slug:
self.slug = unique_slug_generator(self)
if not self.title.islower():
self.title = self.title.lower()
super(CategoryTree, self).save(*args, **kwargs)
def保存(self,*args,**kwargs):
如果不是self.slug:
self.slug=unique\u slug\u生成器(self)
如果不是self.title.islower():
self.title=self.title.lower()
super(CategoryTree,self).save(*args,**kwargs)
根据您的代码,只有在实例没有slug时才会降低标题,而slug通常是在创建对象时。因此,我建议在整个表中使用更新操作
请注意,这是一个一次性操作,它会将每个title
值更新为相应的小写值
或者,您可以将保存(…)
方法修改为
def save(self, *args, **kwargs):
if not self.slug:
self.slug = unique_slug_generator(self)
if not self.title.islower():
self.title = self.title.lower()
super(CategoryTree, self).save(*args, **kwargs)
def保存(self,*args,**kwargs):
如果不是self.slug:
self.slug=unique\u slug\u生成器(self)
如果不是self.title.islower():
self.title=self.title.lower()
super(CategoryTree,self).save(*args,**kwargs)
如何更改现有记录?所有记录都已排序。Arakkal Abu发现了这个问题。你是如何改变现有的记录的?已经整理好了。Arakkal Abu发现了这个问题谢谢。我想得太多了。我所要做的就是将self.title=self.title.lower()移到if not self.slug语句上方。谢谢。我想得太多了。我所要做的就是将self.title=self.title.lower()移到if not self.slug语句上方。