我正在尝试在表中使用数组,并且只有在数组不包含该值时才想将值插入到数组中。我不确定这里最好的表现方法是什么。
“models.py”
class Documents(models.Model):
documentID = models.AutoField(primary_key=True)
class VisibleDocuments(models.Model):
visibleTo = models.ForeignKey(UserProfile, null=True)
documents = ListField()
当我向visibleDocuments添加文档时,我会执行以下操作:
“views.py”
visibleDocuments.documents.append(document.documentID)
visibleDocuments.save()
但是,这种方法的问题在于它会导致列表中出现重复的documentID。我想只有唯一的文档ID。我想知道在Django中最好的方法是什么?我可以使用集合,或者我应该使用某种排序读取访问权限吗?
提前致谢!
解决方案:使用SetField
class VisibleDocuments(models.Model):
visibleTo = models.ForeignKey(UserProfile, null=True)
documents = SetField()
views.py
visibleDocuments.documents.add(document.documentID)
visibleDocuments.save()
感谢大家!
答案 0 :(得分:1)
粗俗的python方式:
if document.documentID not in visibleDocuments.documents:
visibleDocuments.documents.append(document.documentID)
答案 1 :(得分:1)
如果该ListField是djangotoolbox的ListField,则应考虑使用SetField。