问题标签 [django-signals]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
267 浏览

python - 如何处理 Django 模型中的动态计算属性?

在 Django 中,我计算地理对象的面包屑(父亲列表)。由于它不会经常更改,因此我正在考虑在保存或初始化对象后预先计算它。

1.) 什么会更好?哪种解决方案会有更好的性能?是在____init____ 时计算还是在保存对象时计算(对象在数据库中占用大约 500-2000 个字符)?

2.) 我试图覆盖 ____init____ 或 save() 方法,但我不知道如何使用刚刚保存的对象的属性。访问 *args, **kwargs 不起作用。我怎样才能访问它们?我必须保存,访问父亲然后再次保存吗?

3.)如果我决定保存面包屑。最好的方法是什么?我使用了http://www.djangosnippets.org/snippets/1694/并且有 crumb = PickledObjectField()。

该模型:

这就是计算属性 crumb() 的方法

那是我的保存方法:

请帮帮我。我正在为此工作几天。谢谢你。

0 投票
1 回答
5045 浏览

django - Django:在 Django Admin 中具有唯一外键的 UserProfile

我使用名为UserExtension. 它通过唯一的 ForeignKey 关系与 User 相关联,这使我能够在管理员中以内联形式对其进行编辑!我正在使用信号为每个新用户创建一个新的配置文件:

(如这里所述,例如:Extended the User model with custom fields in Django)问题是,如果我通过管理员创建一个新用户,我会在保存“列 user_id 不是唯一的”时收到一个 IntegritiyError。信号似乎没有被调用两次,但我猜管理员正试图在之后保存配置文件?但是如果我在系统的其他部分创建一个新用户,我需要通过信号创建!

0 投票
1 回答
6138 浏览

django - 使用信号扩展 django 注册

我在 stackoverflow 上找到了一个使用信号扩展 django-registration 的解决方案。这是链接:http ://dmitko.ru/?p=546 。
我已经创建了扩展配置文件模型、扩展表单、向设置添加了必需的选项、定义了 url 并显示了正确的表单,但只创建了普通用户(来自 auth 模块)。为什么会这样?

帐户模型:

我需要这个 InheritedProfile 是抽象的,因为其他模型将使用相同的字段。

account.forms

和添加到设置的选项:

最后这是注册信号的样子:

编辑: user_created 的缩进没有改变,直到我尝试改变

现在我得到:
SMTPServerDisconnected
Exception Location: /bin/python-2.6.1/lib/python2.6/smtplib.py in getreply, line 340”
回溯:

即使我目前正在使用虚拟电子邮件后端。注册时注释掉发送邮件功能解决了这个问题,但我的扩展用户仍然没有创建。

0 投票
2 回答
421 浏览

django - 注册时存储用户头像

我有一个扩展的 UserProfile 用于注册新用户。我的 user_created 函数连接到注册基本 User 实例时发送的信号,并使用我的表单中的扩展字段创建新的 UserProfile。这是代码:

问题是在这个表单上我有一个头像字段。正如您从代码中看到的,我正在从表单的数据列表中获取数据。但显然 imageField 没有通过 POST 请求发送它的数据(正如我得到MultiValueDictKeyError at /user/register/的那样Key 'image' not found in <QueryDict...),所以我无法从 data[] 中获取它。

alt text http://img38.imageshack.us/img38/3839/61289917.png 如果常用变量在“数据”内,我应该在哪里查找文件?还是问题更复杂?奇怪的是我的表单没有属性cleaned_data ...我在这里使用dmitko的方法:http://dmitko.ru/?p=546&lang= en。我的:
表格:http://paste.pocoo.org/show/230754/
模型: http: //paste.pocoo.org/show/230755/

0 投票
2 回答
468 浏览

django - 简单的表单不验证

我在 stackoverflow 上找到了一种使用信号扩展 django 内置身份验证的方法。我的基本用户由“电子邮件”和密码定义(所以那里没有用户名)。所以我试图根据我的需要对其进行修改,但我的表单出现验证错误。奇怪的是,错误与 User.email 字段相关联,即使我现在刚刚注册,我也“已经在使用”了。它是试图保存它 2 次还是什么?当我将带有数据的字典发送到 shell: 中的表单构造函数时,我发现了它form = MyForm(data={})。在此表单仍然无效之后,但将电子邮件更改为不同的值最终给了我 True。

连接到注册信号的 user_created 函数:

我的表格:

我的模型:

注册表单:类RegistrationForm(forms.Form):

0 投票
5 回答
7818 浏览

django - Django:在更新模型之前,我想“查看”它以前的属性

当在 Django 模型上执行更新/创建时.save()

我在想 Pre-Save Signals,查找原始模型做 a .objects.get(instance.id),但这感觉很浪费。另外,验证是否已经发生pre_save()

0 投票
1 回答
838 浏览

django - Django 内置信号问题:使用 post_save 时出错

我正在构建一个应用程序,当出现新的ThreadedComments时通知用户。为此,我正在使用post_save信号。这是我的models.py

问题是当创建一个新的 ThreadedComment 时,我得到一个错误:unbound method _get_pk_val() must be called with ThreadedComment instance as first argument (got nothing instead)。Traceback 和调试器说它发生在创建 BuzzEvent 对象调用时signals.pre_init.send。我现在无法破解 django 代码,有什么明显的解决方案或想法吗?

0 投票
2 回答
468 浏览

django - Django pre_save 信号是否适用于所有派生类

我有一个模型类“Action”,它被其他几个类扩展。我是 django 的新手,并假设如果我调用 pre_save.connect(actionFunc, sender=Action),那么只要调用 Action 类中的 save 方法(包括任何派生类)都会调用 actionFunc。

我的观察是,只有当实例与 Sender 中定义的 Class 类型直接匹配时才会触发此函数。有没有办法让这个也接收所有派生的 Action 实例的信号?

0 投票
2 回答
1792 浏览

django - 在 Django 管理员中激活用户时发送电子邮件

我即将创建一个监控注册的网站,只允许某些人注册。毫无疑问,尽管我在注册表上方写了任何文字,但仍有一些不合适的人会注册,所以我们要适度。

注册后django.contrib.auth User,将创建一个和个人资料,并向版主发送一封电子邮件。版主将登录 Django 管理站点,检查他们是否被允许注册并将其帐户标记为活动的。如果他们是一些试图溜进来的恶棍,该帐户将被删除。

我将使用 recaptcha 来尝试停止自动尝试。

我想在帐户被激活或删除时发送一封电子邮件,让帐户持有人知道他们的帐户发生了什么,他们可以登录,或者让他们知道我们知道他们在做什么,他们应该别傻了。

我怀疑这与信号有关,但坦率地说,鉴于我使用的是从django.contrib.auth.

任何提示、线索或代码都被亲切地接受。

0 投票
1 回答
76 浏览

python - 创建多对多关系时有没有办法发出服装信号?姜戈!

创建多对多关系时,有没有办法制作自定义信号?