【发布时间】:2014-10-21 04:01:38
【问题描述】:
我正在开发一个连接到 LDAP 服务器的 Django 应用程序。这是我正在尝试做的技巧。
我有一个名为 system 的模型,其中包含一些关于计算机的信息。当我添加一个新的 system 时,模型会生成一个唯一的 UUID,比如 AutoField。 重点是这个参数是保存的时候生成的,而且只有第一次。
保存后,我需要一个函数来保留该 UUID 并在我的 LDAP 上创建一个新对象。
由于我对信号不太了解,因此我尝试以这种方式覆盖模型保存功能:
def save(self):
# import needed modules
import ldap
import ldap.modlist as modlist
[--OPERATIONS ON THE LDAP--]
super(System, self).save()
以这种方式,如果我修改现有的系统,所有工作都应该正常,因为它的 UUID 已经生成。但是,如果我尝试添加一个新的 system,我发现错误 UUID 为 None,并且我无法在 LDAP 上使用空变量(这也是没用的,你不这么认为吗?)
似乎我需要在系统保存之后调用在LDAP上工作的函数,因此在生成UUID之后。我试图不了解如何创建 post_save 函数,但我无法获得它。
我该怎么做?
谢谢
【问题讨论】:
标签: python django django-models django-signals