Python 附加到django的CommaseOperatedIntegerfield
我创建了一个带有CommaseParatedTegerfield的模型 型号.pyPython 附加到django的CommaseOperatedIntegerfield,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我创建了一个带有CommaseParatedTegerfield的模型 型号.py class ForumPosts(models.Model): .... path = models.CommaSeparatedIntegerField(blank=True,max_length=50) ... def create_forum_post(request, ..): ... forumpost.path.append(forumpost_id)
class ForumPosts(models.Model):
....
path = models.CommaSeparatedIntegerField(blank=True,max_length=50)
...
def create_forum_post(request, ..):
...
forumpost.path.append(forumpost_id)
...
我想使用这个模型,并在下面定义了我的视图
视图.py
class ForumPosts(models.Model):
....
path = models.CommaSeparatedIntegerField(blank=True,max_length=50)
...
def create_forum_post(request, ..):
...
forumpost.path.append(forumpost_id)
...
我遇到了一种情况,我必须将forumpost_id(一个整数)附加到定义为CommaseOperatedIntegerField的路径中。调试时我出错了
“unicode”对象没有属性“append”
我想这可能是因为缺少逗号,我尝试了许多相同代码的变体,但无法将forumpost_id添加到路径。提前感谢
CommaseParatedIntegraterField
的值不会自动反序列化,此字段类型的唯一功能是验证(它必须是逗号分隔的整数)
您需要检索字段值,对其进行反序列化,追加新的整数,序列化并将其保存回去
编辑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
你的意思是字符串连接?我也尝试过字符串连接,但它不起作用。我想它可能是CommaseOperatedIntegerField独有的。我对django很陌生,所以如果你不介意的话,可以解释一下如何反序列化。我只知道它与json/xml有关,但不知道如何在CommaseOperatedIntegerField的上下文中实现。