小编Kon*_*ski的帖子

Django:用户登录时发出信号?

在我的Django应用程序中,我需要在用户登录时开始运行一些定期后台作业,并在用户注销时停止运行它们,所以我正在寻找一种优雅的方式

  1. 收到用户登录/注销的通知
  2. 查询用户登录状态

从我的角度来看,理想的解决方案是

  1. 由每个发送的信号django.contrib.auth.views.login和... views.logout
  2. 一种方法django.contrib.auth.models.User.is_logged_in(),类似于... User.is_active()或... User.is_authenticated()

Django 1.1.1没有那个,我不愿修改源代码并添加它(不知道如何做到这一点,无论如何).

作为临时解决方案,我is_logged_in在UserProfile模型中添加了一个布尔字段,该模型默认情况下已清除,在用户第一次访问登录页面(定义方式LOGIN_REDIRECT_URL = '/')时设置,并在后续请求中查询.我将它添加到UserProfile,因此我不必为此目的派生和定制内置用户模型.

我不喜欢这个解决方案.如果用户明确点击了注销按钮,我可以清除该标志,但大多数时候,用户只需离开页面或关闭浏览器; 在这些情况下清除旗帜对我来说似乎并不直接.此外(尽管数据模型的清晰度很明显),is_logged_in不属于UserProfile,而是属于User模型.

谁能想到替代方法?

python django signals login

74
推荐指数
3
解决办法
3万
查看次数

Django密码生成器

我已将一堆用户及其数据导入到django项目中.我需要为每个人分配一个密码.是否有这样的片段用于密码生成,以应对Django哈希和盐?

passwords django

70
推荐指数
4
解决办法
3万
查看次数

Google地图在Android中签署了api密钥错误

当我从调试映射键切换到我签名的地图键时,我的地图停止工作.我在logcat中遇到以下错误:

09-03 18:18:04.112: WARN/System.err(4073): IOException processing: 26
09-03 18:18:04.112: WARN/System.err(4073): java.io.IOException: Server returned: 3
09-03 18:18:04.112: WARN/System.err(4073):     at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115)
09-03 18:18:04.112: WARN/System.err(4073):     at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473)
09-03 18:18:04.112: WARN/System.err(4073):     at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117)
09-03 18:18:04.112: WARN/System.err(4073):     at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994)
09-03 18:18:04.112: WARN/System.err(4073):     at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702)
09-03 18:18:04.112: WARN/System.err(4073):     at java.lang.Thread.run(Thread.java:1019)
Run Code Online (Sandbox Code Playgroud)

我已经仔细检查了所有内容,权限和库已经到位.我重新创造了烧焦的钥匙而没有运气.

有任何想法吗?

android signed google-maps key

62
推荐指数
1
解决办法
7万
查看次数

53
推荐指数
3
解决办法
7万
查看次数

Django-AttributeError'User'对象没有属性'backend'(但......它确实如此?)

为了在注册用户后对其进行签名,我手动设置了user.backend属性.它通常适用于我的观点.在这个例子中,我试图通过AJAX注册用户.它引发了一个AttributeError.

这是我的代码:

 def register_async(request):
    if request.method=='POST':

    userform=MyUserCreationForm(request.POST)
    if userform.is_valid():
        #username of <30 char is required by Django User model.  I'm storing username as a hash of user email 

        user=userform.save(commit=False)
        user.username=hash(user.email)
        user.backend='django.contrib.auth.backends.ModelBackend'
        user.save()


        auth.login(request,user)
        user_status=1
        user_fname=user.first_name
        user_data=[{'user_status':user_status, 'user_fname':user_fname}]
        json_data=json.dumps(user_data)
        response=HttpResponse()
        response['Content-Type']="text/javascript"
        response.write(json_data)
        return response 

    else:
        user_data=[{'user_status':"0"}]
        json_data=json.dumps(user_data)
        response=HttpResponse()
        response['Content-Type']="text/javascript"
        response.write(json_data)
        return response 
else:
    return HttpResponse()
Run Code Online (Sandbox Code Playgroud)

编辑 - 这里是AJAX.它看起来很漂亮

     //ajax registration.  
$('input#register_submit').click(function(event){
    $(this).attr('disabled','disabled');
    $('<div class="register-animation"><img src="{{site}}media/ajax-loader3.gif"/></div>').appendTo('#register_modal_btn');

    $.post("/register/", $('div#register_side form').serialize(), 
        function(data){
            $.each(data,function(){
            if(this.user_status==1){
                $('.register-animation').remove();
                $('.right_section .top').html('<ul><li class="sep_nav">Hi, '+ this.user_fname + '</li><li class="sep+nav"><a href="http://nabshack.com/logout/">Log …
Run Code Online (Sandbox Code Playgroud)

authentication django django-models django-authentication

53
推荐指数
2
解决办法
4万
查看次数

JavaScript - 如何获取当前用户的名称

我想知道如何在JavaScript中获取当前用户的名称作为HTML文档的一部分.

在Java中,可以键入System.getProperty("user.name");以实现此目的.在JavaScript中有什么替代方案?

html javascript username

53
推荐指数
4
解决办法
26万
查看次数

Django:如何在管理表单中获取当前用户

在Django的ModelAdmin中,我需要显示根据用户拥有的权限定制的表单.有没有办法将当前用户对象放入表单类,以便我可以在其__init__方法中自定义表单?
我认为在本地线程中保存当前请求是可能的,但这将是我的最后手段,我想我认为这是一个糟糕的设计方法....

django django-forms django-admin username

46
推荐指数
4
解决办法
2万
查看次数

在bash脚本中模拟用户输入

我正在创建自己的bash脚本,但我现在卡住了.基本上,该脚本将用于自动化CentOS中的服务器设置.某些软件通常会要求用户输入密码.我希望脚本将我生成并存储的密码作为变量而不是询问用户.

当安装过程中出现"新密码:"消息时,如何让脚本将值存储在变量中$key,就像用户使用bash脚本键入它一样?

bash user-input input emulation

46
推荐指数
1
解决办法
9万
查看次数

编写单元测试在ASP.NET Web API中使用User.Identity.Name的方法

我正在使用ASP.NET Web API的单元测试编写测试用例.

现在我有一个动作调用我在服务层定义的一些方法,在那里我使用了以下代码行.

string username = User.Identity.Name;
// do something with username
// return something
Run Code Online (Sandbox Code Playgroud)

现在我如何为此创建单元测试方法,我得到空引用异常.我是一个新的编写单元测试和东西.

我想仅为此使用单元测试.

请帮我解决这个问题.谢谢.

.net asp.net unit-testing identity username

41
推荐指数
3
解决办法
2万
查看次数

编译器为匿名方法生成了错误的代码[MS BUG FIXED]

请参阅以下代码:

public abstract class Base
{
    public virtual void Foo<T>() where T : class
    {
        Console.WriteLine("base");
    }
}

public class Derived : Base
{
    public override void Foo<T>()
    {
        Console.WriteLine("derived");
    }

    public void Bang()
    {
        Action bang = new Action(delegate { base.Foo<string>(); });
        bang();    //VerificationException is thrown
    }
}
Run Code Online (Sandbox Code Playgroud)

new Derived().Bang();抛出一个例外.在Bang我生成的方法生成的CIL里面:

call instance void ConsoleApp.Derived::'<>n__FabricatedMethod1'<string>()
Run Code Online (Sandbox Code Playgroud)

和编译器生成方法的签名:

method private hidebysig 
    instance void '<>n__FabricatedMethod1'<T> () cil managed 
{
    .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = (
        01 00 00 00
    ) …
Run Code Online (Sandbox Code Playgroud)

.net c# delegates cil anonymous-methods

30
推荐指数
1
解决办法
1040
查看次数