Python 使用一个字段中每个单词的第一个字母填充Django中的另一个字段

Python 使用一个字段中每个单词的第一个字母填充Django中的另一个字段,python,django,django-models,Python,Django,Django Models,我正在做一个项目,我有一个名为Post的模型,我想创建一个名为Post_id的字段,它基本上是Post_标题中每个单词的第一个字母。因此,我的models.py文件如下所示: class Post(models.Model): ... post_title = models.CharField(max_length=24) post_id = models.CharField(max_length=24, null=True) def save(self, *args, **kwargs):

我正在做一个项目,我有一个名为Post的模型,我想创建一个名为Post_id的字段,它基本上是Post_标题中每个单词的第一个字母。因此,我的models.py文件如下所示:

class Post(models.Model):
...
post_title = models.CharField(max_length=24)
post_id = models.CharField(max_length=24, null=True)

def save(self, *args, **kwargs):
    output = ''
    for i in self.post_title().split():
        output += i[0]
    self.post_id= ('%s') % (output)         
    super(Post, self).save(*args, **kwargs)
然而,这给了我一个错误:

'str' object is not callable
错误发生在:

for i in self.post_title().split()

有没有办法解决这个问题?谢谢

此行出现问题:

for i in self.post_title().split():
您在这里所做的是调用属性
post_title
(使用parantises
()
),而不是简单地检索它:

for i in self.post_title.split():

问题发生在这一行:

for i in self.post_title().split():
您在这里所做的是调用属性
post_title
(使用parantises
()
),而不是简单地检索它:

for i in self.post_title.split():

问题发生在这一行:

for i in self.post_title().split():
您在这里所做的是调用属性
post_title
(使用parantises
()
),而不是简单地检索它:

for i in self.post_title.split():

问题发生在这一行:

for i in self.post_title().split():
您在这里所做的是调用属性
post_title
(使用parantises
()
),而不是简单地检索它:

for i in self.post_title.split():


为什么在
输出上使用字符串格式?它已经是一个字符串。因为我不确定如何存储这些值。错误是
self.post\u title
之后的参数。您应该始终发布完整的stacktrace,而不仅仅是错误消息,这会使错误变得明显,因为它会准确地告诉您错误发生的位置。您为什么在
输出上使用字符串格式?它已经是一个字符串。因为我不确定如何存储这些值。错误是
self.post\u title
之后的参数。您应该始终发布完整的stacktrace,而不仅仅是错误消息,这会使错误变得明显,因为它会准确地告诉您错误发生的位置。您为什么在
输出上使用字符串格式?它已经是一个字符串。因为我不确定如何存储这些值。错误是
self.post\u title
之后的参数。您应该始终发布完整的stacktrace,而不仅仅是错误消息,这会使错误变得明显,因为它会准确地告诉您错误发生的位置。您为什么在
输出上使用字符串格式?它已经是一个字符串。因为我不确定如何存储这些值。错误是
self.post\u title
之后的参数。您应该始终发布完整的stacktrace,而不仅仅是错误消息,这会使错误变得明显,因为它会准确地告诉您错误发生的位置。嗯,不完全是这样。方法也是属性
a.method()
将首先检索属性
method
,然后调用它。类似地,
self.post\u title()
将首先检索属性
self.post\u title
,这是一个字符串,然后调用它,导致OP收到错误消息。哇,从来没有这样想过,今天才学到一些新东西。非常感谢。嗯,不完全是。方法也是属性
a.method()
将首先检索属性
method
,然后调用它。类似地,
self.post\u title()
将首先检索属性
self.post\u title
,这是一个字符串,然后调用它,导致OP收到错误消息。哇,从来没有这样想过,今天才学到一些新东西。非常感谢。嗯,不完全是。方法也是属性
a.method()
将首先检索属性
method
,然后调用它。类似地,
self.post\u title()
将首先检索属性
self.post\u title
,这是一个字符串,然后调用它,导致OP收到错误消息。哇,从来没有这样想过,今天才学到一些新东西。非常感谢。嗯,不完全是。方法也是属性
a.method()
将首先检索属性
method
,然后调用它。类似地,
self.post\u title()
将首先检索属性
self.post\u title
,这是一个字符串,然后调用它,导致OP收到错误消息。哇,从来没有这样想过,今天才学到一些新东西。非常感谢。