以下链接指定如何在Django中创建列表字段。
How to create list field in django
我的问题;如何添加,删除该字段的项目?如果可能的话。我希望之后能够在Model的实例的这个字段中添加和删除。如果不可能,请有人建议我替代。
答案 0 :(得分:3)
ListField
中的:
to_python
函数用于将数据库字符串转换为python对象(这里是列表)
get_prep_value
用于将python对象处理为字符串(以便在下一步中存储到数据库中)。
当你调用你的obj.listfield,例如a.list
时,你会得到一个python列表,所以你可以使用a.list.append(val)
,a.list.insert(0, val)
方法来操作,最后调用{{1 },a.save()
将在数据库和python之间进行转换。
listfield
例如:
class Dummy(models.Model):
mylist = ListField()
def insert_to_mylist(self, index, value):
self.mylist.insert(index, value)
#self.save()
def remove_from_mylist(self, value):
self.mylist.remove(value)
#self.save()
如果您想在不d = Dummy()
d.mylist.insert(0, 'tu')
d.save()
d.mylist.remove('tu')
d.save()
d.insert_to_mylist(0, "tu")
d.save()
d.remove_from_mylist('tu')
d.save()
的情况下插入或移除,只需将.save()
添加到.save()
和insert_to_mylist
功能即可。
remove_from_mylist
仅用于数据库和python之间的转换,因此添加删除或插入可能很困难。但是你可以在模型中完成它,如果很多模型需要使用这个方法,只需写一个ListField
。
答案 1 :(得分:1)
我在模型中存储列表的方法是将它们转换为字符串并将它们存储为TextField。