Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我重写了save()方法,但新代码只应用于新记录_Python_Python 3.x_Django - Fatal编程技术网

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语句上方。