Python 仅向django中的表数组添加唯一值

Python 仅向django中的表数组添加唯一值,python,django,pymongo,Python,Django,Pymongo,我试图在表中使用一个数组,并且仅当数组不包含值时才想将值插入数组。我不确定在这里什么是最佳的绩效方法 “models.py” 将文档添加到visibleDocuments时,我会执行以下操作: “views.py” 但是,这种方法的问题是它会导致列表中的documentid重复。我希望只有唯一的DocumentID。我想知道在Django做这件事的最好方式是什么?我可以使用集合吗?或者我应该使用某种排序读取访问吗 提前谢谢 解决方案:使用设置字段 class VisibleDocuments(m

我试图在表中使用一个数组,并且仅当数组不包含值时才想将值插入数组。我不确定在这里什么是最佳的绩效方法

“models.py”

将文档添加到visibleDocuments时,我会执行以下操作:

“views.py”

但是,这种方法的问题是它会导致列表中的documentid重复。我希望只有唯一的DocumentID。我想知道在Django做这件事的最好方式是什么?我可以使用集合吗?或者我应该使用某种排序读取访问吗

提前谢谢

解决方案:使用设置字段

class VisibleDocuments(models.Model):
    visibleTo = models.ForeignKey(UserProfile, null=True)
    documents = SetField()
views.py

visibleDocuments.documents.append(document.documentID)
visibleDocuments.save()
visibleDocuments.documents.add(document.documentID)
visibleDocuments.save()

谢谢大家

执行此操作的方法:

if document.documentID not in visibleDocuments.documents:
    visibleDocuments.documents.append(document.documentID)

如果ListField是DjangoTooBox的Listfield,则应该考虑使用SETFELD。

。你的问题很有帮助,我在上面的链接中找到了setField。谢谢,我刚刚发现并成功地使用了它
if document.documentID not in visibleDocuments.documents:
    visibleDocuments.documents.append(document.documentID)