栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将其他参数传递给post_save信号

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将其他参数传递给post_save信号

我要做的是为实例设置一些

“ _attrs”
,然后在信号处理程序中使用它们。

我想你的情况可能是:

# Function to Create user Account/Profiledef create_user_account(sender, instance, created, **kwargs):    if created:        attrs_needed = ['_language', '_field', '_otherfield']        if all(hasattr(instance, attr) for attr in attr_needed): models.Account.objects.create(     user=instance,      language=instance._language,      field=instance._field,     otherfield=instance._otherfield)# Create User / User Registrationdef UserRegistration(request):  if request.method == 'POST':    username = request.POST['fn'].capitalize() + ' ' + request.POST['ln'].capitalize()    # CREATE USER    newuser = User.objects.create_user(        username=username, email=request.POST['email'],        password=request.POST['pw'])    newuser.first_name = request.POST['fn'].capitalize()    newuser.last_name = request.POST['ln'].capitalize()    # Set some extra attrs to the instance to be used in the handler.    newuser._language = request.POST['language']    newuser._field = request.POST['field']    newuser._otherfield = request.POST['otherfield']    newuser.save()  return HttpResponse(username)#Post Save handler to create user Account/Profilepost_save.connect(create_user_account, sender=User)

我讨厌这样做,我想它可能会以可怕的方式破坏,有时很难调试,也没有一种严格的方法来强制处理程序所需的数据,可以定义一个

signal_data(data, signal, instance)
来定义处理程序所需的数据。特定实例的信号处理程序。

我没有尝试过的一个不错的选择是使用实例的方法作为信号的处理程序,也许我们可以使用结构化的方法来传递数据。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/381098.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号