首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在github上使用django-自定义用户应用程序,如何获取刚刚创建电子邮件地址的当前用户

在github上使用django-自定义用户应用程序,如何获取刚刚创建电子邮件地址的当前用户
EN

Stack Overflow用户
提问于 2013-09-25 15:00:43
回答 1查看 90关注 0票数 0

我在github上使用django-custom-user应用程序:https://github.com/recreatic/django-custom-user

我有一个定义如下的信号:

代码语言:javascript
复制
@receiver(post_save, sender=EmailUser)
def user_saved(sender=None, **kwargs):
    print("Request finished!")
    user = kwargs["instance"]
    if kwargs["created"]:
        blah = Blah(user=get_user_model(), name="None")
        blah.save()

现在我收到错误: Cannot assign "":"Blah.user“必须是一个"EmailUser”实例。这个错误是有意义的,因为在github描述中它说要获取一个特定的电子邮件地址:

代码语言:javascript
复制
user = get_user_model().get(email="user@example.com")

我的问题是。在这种情况下,如何才能获得刚刚创建的用户?我不是有刚刚登录的用户的电子邮件地址吗?我通过django admin btw来做这件事。这是视图中的同义词,您可以使用request.user。但我想我现在不能这么做。

有人能解释一下这些信号回调中的参数是什么吗?这个回调函数有一个任意的名称user_saved,但不知何故它得到了参数"sender“和”kwargs“。它们从哪里来,我在哪里可以找到这些回调的参数列表?

EN

回答 1

Stack Overflow用户

发布于 2013-11-03 04:07:06

而不是:

代码语言:javascript
复制
blah = Blah(user=get_user_model(), name="None")

只需使用:

代码语言:javascript
复制
blah = Blah(user=kwargs["instance"], name="None")

这是因为Blah()需要的是实例,而不是类模型。

信号接收器始终将sender作为第一个参数,然后是许多变量参数(这就是为什么需要*kwargs ),如signals documentation中所述。可以在post-save documentation中找到post-save参数列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18998287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档