0

我创建了一个具有 CommaSeparatedIntegerField 的模型

模型.py

class ForumPosts(models.Model):

    ....
    path = models.CommaSeparatedIntegerField(blank=True,max_length=50)
    ...

我想使用这个模型并将我的视图定义如下 views.py

def create_forum_post(request, ..):

    ...
    forumpost.path.append(forumpost_id)
    ...

我遇到了一种情况,我必须将 forumpost_id 附加到定义为 CommaSeperatedIntegerField 的路径中,它是一个整数。调试时出现错误

'unicode' 对象没有属性 'append'。

我认为这可能是由于缺少逗号我尝试了相同代码的许多变体但无法将 forumpost_id 添加到路径。提前致谢

4

1 回答 1

0

CommaSeparatedIntegerField的值不会自动反序列化,该字段类型的唯一特征是验证(它必须是逗号分隔的整数)。

您需要检索字段值、对其进行反序列化、附加新整数、序列化并将其保存回来。

编辑1:

例子:

class ForumPosts(models.Model):
    # ...

    def append_to_path(self, value):
        path_list = self.path.split(',')
        path_list.append(value)
        self.path = ','.join(path_list)

用法:

forumpost.append_to_path(forumpost_id)
forumpost.save() # save will validate if the path is correct
于 2013-09-24T18:46:17.893 回答