我有两个模型:Page
和自定义用户模型MyUser
这两个模型各有一个很多地方:
class Page(models.Model):
members = models.ManyToManyField(settings.AUTH_USER_MODEL)
class MyUser(AbstractUser):
mypages = models.ManyToManyField(Page)
objects = UserManager()
当我通过管理界面向members
manytomanyfield添加成员时,我想在mypages
属性中自动将新的属性Page对象添加到用户,所以我试图覆盖admin.py中的Page模型的save方法:
class PageAdmin(admin.ModelAdmin):
def save_related(self, request, form, formsets, change):
super(ModelAdmin, self).save_related(request, form, formsets, change)
if 'members' in form.changed_data:
#And I am quite lost....
这是个好主意吗?我应该在" Page模型中自定义保存"我的models.py
文件中的方法是在admin.py
中执行的吗?
我尝试用来自以下内容的想法替换#And I am quite lost....
部分:
Link1
Link2
没有任何成功!
答案 0 :(得分:0)
这完全是错的。多对多领域已经是双端的。您不需要在两端定义它。当您在members
上定义Page
字段时,MyUser
会自动获得一个page_set
访问者,这是该关系的另一端,以及任何将用户添加到其成员将自动显示在用户的page_set中。不需要任何代码。