我想创建一个与用户类对象之间的多对多关系。
我有这样的事情:
class MyUser(models.Model): ... blocked_users = models.ManyToManyField(MyUser, blank=True, null=True)
问题是我是否可以在内部使用类引用。还是我必须使用"self"欧洲工商管理学院"MyUser"的ManyToManyField?还是有另一种(更好的)方法呢?
"self"
"MyUser"
ManyToManyField
从技术上讲,我很确定“ MyUser”或“ self”都可以使用,只要在任何情况下都是字符串即可。你只是无法通过MyUser实际的课程。
但是,文档始终使用“自我”。使用“自我”不仅可以更清楚地了解实际发生的情况,而且可以防止类名更改。例如,如果你后来更改MyUser为SomethingElse,则还需要更新对“ MyUser”的任何引用。问题在于,由于它是字符串,因此你的IDE不会警告你该错误,因此你丢失它的可能性更大。无论班级的名称是现在还是将来,使用“自我”都可以。
MyUser
SomethingElse
“ MyUser”
class MyUser(models.Model): ... blocked_users = models.ManyToManyField("self", blank=True)