Python 带有添加和删除的Django列表字段

Python 带有添加和删除的Django列表字段,python,django,Python,Django,下面的链接指定如何在Django中创建列表字段 我的问题;如何在此字段中添加、删除项目?如果可能的话。我希望以后能够添加到模型实例的这个字段中,并从中删除。如果不可能,请有人给我一个替代方案。我在模型中存储列表的方法是将列表转换为字符串并存储为文本字段。我在模型中存储列表的方法是将列表转换为字符串并存储为文本字段。在列表字段中: to_python函数用于将数据库字符串转换为python对象(以下是列表) get_prep_value用于将python对象处理为字符串(下一步存储到数据库中)。

下面的链接指定如何在Django中创建列表字段


我的问题;如何在此字段中添加、删除项目?如果可能的话。我希望以后能够添加到模型实例的这个字段中,并从中删除。如果不可能,请有人给我一个替代方案。

我在模型中存储列表的方法是将列表转换为字符串并存储为文本字段。

我在模型中存储列表的方法是将列表转换为字符串并存储为文本字段。

列表字段中:

to_python
函数用于将数据库字符串转换为python对象(以下是列表)
get_prep_value
用于将python对象处理为字符串(下一步存储到数据库中)。 当您调用obj.listfield时,例如
a.list
,您将得到一个python列表,因此您可以使用
a.list.append(val)
a.list.insert(0,val)
方法进行操作,最后调用
a.save()
listfield
将为您完成数据库和python之间的转换

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\u-to\u-mylist
remove\u-from\u-mylist
函数即可


ListField
仅用于数据库和python之间的转换,因此向其中添加remove或insert可能比较困难。但是您可以在您的模型中执行此操作,如果许多模型需要使用此方法,只需在
列表字段中编写
抽象模型

to_python
函数用于将数据库字符串转换为python对象(以下是列表)
get_prep_value
用于将python对象处理为字符串(下一步存储到数据库中)。 当您调用obj.listfield时,例如
a.list
,您将得到一个python列表,因此您可以使用
a.list.append(val)
a.list.insert(0,val)
方法进行操作,最后调用
a.save()
listfield
将为您完成数据库和python之间的转换

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\u-to\u-mylist
remove\u-from\u-mylist
函数即可

ListField
仅用于数据库和python之间的转换,因此向其中添加remove或insert可能比较困难。但是您可以在您的模型中执行此操作,如果许多模型需要使用此方法,只需编写一个
抽象模型