Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django管理员_Python_Django_Django Admin - Fatal编程技术网

Python Django管理员

Python Django管理员,python,django,django-admin,Python,Django,Django Admin,我正在使用Django admin管理我的数据。 我有一个用户、组和域表 用户表与组和域表具有多对多关系。 域表与组表具有一对多关系。 当我通过admin保存用户数据时,我还需要在users\u组和users\u domains表中进行一些额外的数据库更新。 我该怎么做?我应该把代码放在哪里。 谢谢 我想你在找。它们允许您在与父模型相同的页面中编辑相关模型。如果您希望获得比此更大的控制,则可以覆盖ModelAdmin 另外,当你需要什么东西的时候,一定要查看。这真的很好。更新其他数据库表的最佳方

我正在使用Django admin管理我的数据。 我有一个用户、组和域表 用户表与组和域表具有多对多关系。 域表与组表具有一对多关系。 当我通过admin保存用户数据时,我还需要在users\u组和users\u domains表中进行一些额外的数据库更新。 我该怎么做?我应该把代码放在哪里。
谢谢

我想你在找。它们允许您在与父模型相同的页面中编辑相关模型。如果您希望获得比此更大的控制,则可以覆盖ModelAdmin


另外,当你需要什么东西的时候,一定要查看。这真的很好。

更新其他数据库表的最佳方法是执行必要的获取和保存操作。但是,如果您有一个多对多关系,默认情况下,可以通过_set参数访问该关系的两侧。也就是说,user.group\u set.all()将提供与用户关联的所有组对象,而group.user\u set.all()将提供与组关联的所有用户对象。因此,如果覆盖save方法(或注册信号侦听器——无论哪个选项听起来更符合风格),请尝试:


看起来我需要重写save方法。正如我之前提到的,我需要更新几个数据库表。。。让其余的操作像往常一样执行。我该怎么做呢。感谢文档中示例中的OK。只需在AdminModel类中定义一个名为save_model的函数,并在其中执行您需要的操作。我只是在玩save_model。看起来这里放的任何语句都会被执行,保存操作也会随之执行,即使我没有显式调用save()。这是正确的行为吗。我无法在django网站上找到任何进一步的文档。谢谢。这是正确的行为。您是要中止保存还是什么?我认为如果不进行一些修改,这是不可能的。当我保存时,save_模型会在POST和GET之前执行。是否有一种方法可以在POST之后和GET之前执行save_模型。
for group in user.group_set.all():
    #play with group object
    ....
    group.save()