模型字段已经是属性,所以我要说第二种方法是避免名称冲突。
定义时,
foo = property(..)它实际上将覆盖该
foo = models..行,因此该字段将不再可访问。
你需要为属性和字段使用其他名称。实际上,如果按照示例1的方式进行操作,则在尝试访问该属性时将获得一个无限循环,因为该属性现在试图返回自身。
编辑:也许你还应该考虑不用
_foo作字段名称,而是
foo,然后为属性定义另一个名称,因为不能在中使用属性
QuerySet,因此例如在进行过滤时,你将需要使用实际的字段名称。 。



