小编aba*_*rik的帖子

当检索到的电子邮件与现有用户的电子邮件匹配时,django allauth facebook重定向到注册?

我成功地能够使用Django(1.6.4)和allauth(0.16.1)以及Python(2.7)通过Google和Facebook登录,预期重定向到settings.LOGIN_REDIRECT_URL,以防没有现有用户从中检索到emailid供应商.但是,当已经存在与从提供者(fb或goolge)检索到的用户具有相同emailid的用户时,它总是重定向到/ accounts/social/signup /#= 注册页面询问:

您即将使用您的Facebook/Google帐户登录example.com.最后一步,请填写以下表格:电子邮件已自动填写.

我曾与测试SOCIALACCOUNT_AUTO_SIGNUP = TrueFalse,但没有效果.我尝试更改facebook的auth_type,但除了"rerequest"之外我没有看到任何其他选项

我有以下settings.py:

ACCOUNT_AUTHENTICATION_METHOD = "email" # Defaults to username_email
ACCOUNT_USERNAME_REQUIRED = False       # Defaults to True
ACCOUNT_EMAIL_REQUIRED = True           # Defaults to False
SOCIALACCOUNT_QUERY_EMAIL = ACCOUNT_EMAIL_REQUIRED
SOCIALACCOUNT_AUTO_SIGNUP = True
SOCIALACCOUNT_EMAIL_REQUIRED = False
ACCOUNT_ADAPTER = "myproject.adapter.MyLoginAccountAdapter"
LOGIN_URL = "/"
LOGIN_REDIRECT_URL = "/users/{id}/mytags"
Run Code Online (Sandbox Code Playgroud)

如何停止此重定向到注册,并将提供程序登录重定向到具有相同emailid的已存在用户的特定LOGIN_REDIRECT_URL?

注意:这个我试过了

更新:

  1. 由于这个答案,我意识到通过Facebook的登录将重定向到一个案例中的注册页面:当从Facebook个人资料中检索到的电子邮件与已有用户的emailid匹配时.
  2. 我已经更新了这个问题,以便解释上述情况.
  3. 总结一下这个问题,这是一个多个提供者帐户具有相同电子邮件ID并且django-allauth不允许互换登录的情况(如果我使用facebook注册一次,则django-allauth将要求我仅使用Facebook而不是谷歌或任何其他提供商与相同的电子邮件ID
  4. 我通过使用@receiver(pre_social_login)raise ImmediateHttpResponse(看看我的答案)解决了有用的链接:这个这个 …

django django-allauth

19
推荐指数
1
解决办法
3324
查看次数

如何在cygwin中使用conda

我安装了Cygwin的Win 7.cygwin有自己的Python 2.7解释器.我已经为Win 7单独安装了Miniconda(不适用于Cygwin,不确定我是否必须).

所以,问题是我能够从cygwin创建一个新的env,并能够激活它.但是,激活似乎没有做任何事情?

ambarik@AMBARIK-WS01 ~
$ conda create -n cce python
Fetching package metadata: ..
Solving package specifications: .
Package plan for installation in environment C:\Miniconda\envs\cce:

The following packages will be linked:

    package                    |            build
    ---------------------------|-----------------
    python-2.7.8               |                0   hard-link

Proceed ([y]/n)? y

Linking packages ...
[      COMPLETE      ] |#################################################| 100%
#
# To activate this environment, use:
# > activate cce
#

ambarik@AMBARIK-WS01 ~
$ activate cce
-bash: activate: command not found

ambarik@AMBARIK-WS01 ~
$ /cygdrive/c/Miniconda/Scripts/activate.bat cce …
Run Code Online (Sandbox Code Playgroud)

python cygwin conda miniconda

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

passport.initialize()中间件未用于快递4.10的自定义回调

任何人都可以帮我这个.Error: passport.initialize() middleware not in use当我尝试连接到数据库中的用户时,我不断得到.异常案例工作得很好(没有找到错误的密码/用户名).

这是设置:

我正在使用的版本

// version
node --version v0.10.33
express@4.10.2
passport@0.2.1
passport-local@1.0.0
Run Code Online (Sandbox Code Playgroud)

server.js代码在这里

// server.js
'use strict';
var express = require('express');
var bodyParser = require('body-parser');
var session = require('express-session');
var passport = require('passport');
var flash = require('connect-flash');
var cookieParser = require('cookie-parser');

//Our custom modules
var mysqlc = require('./modules/mysql_client');

// Our custom apps
var app = express();

//view engine setup
app.set('env', process.env.NODE_ENV);
console.log('Running as environment: ' + app.get('env'));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(favicon(path.join(__dirname,'./public/favicon.ico'))); …
Run Code Online (Sandbox Code Playgroud)

node.js express passport-local passport.js

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

为什么 grep "-c" 计数为 0 以状态码 -1 退出程序

为什么当grep -c返回时0,脚本失败并显示“-1”退出代码。这仅在set -o errexit设置时发生。

在 bash shell 上复制/粘贴

cat <<'EOT' > /tmp/foo.sh
#!/usr/bin/env bash

function bash_traceback() {
  local lasterr="$?"
  set +o xtrace
  local code="-1"
  local bash_command=${BASH_COMMAND}
  echo "Error in ${BASH_SOURCE[1]}:${BASH_LINENO[0]} ('$bash_command' exited with status $lasterr)"
  if [ ${#FUNCNAME[@]} -gt 2 ]; then
    # Print out the stack trace described by $function_stack
    echo "Traceback of ${BASH_SOURCE[1]} (most recent call last):"
    for ((i=0; i < ${#FUNCNAME[@]} - 1; i++)); do
    local funcname="${FUNCNAME[$i]}"
    [ "$i" -eq "0" …
Run Code Online (Sandbox Code Playgroud)

bash grep count

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

OCR - 使用tesseract 3.0和imagemagick 6.6.5从图像中获取文本

我正在尝试构建一个shell脚本,允许我在图像中搜索文本.根据文本,脚本将尽力从图像中获取文本.我想要你的输入,因为这个脚本似乎适用于大多数图像,但不是那些文本字体颜色类似于文本周围较小环境的图像.

# !/bin/bash
# 
# imt-ocr.sh is image magick tessearc OCR tool that is used for finding out text in image
#
# Arguments:
# 1     -- image filename (with path)
# 2     -- text to search in image      (default to '')
# 3     -- occurence of text            (default to 1)
# Usage:
# imt-ocr.sh [image_filename] [text_to_search] [occurence]
#

image=$1
txt=$2
occurence=$3    # Default to 1
if [ "$occurence" == "" ]
then
        occurence=1
fi

get_major_color ()
# Returns the …
Run Code Online (Sandbox Code Playgroud)

linux tesseract imagemagick

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

pexpect setecho不工作

我试图telnet到Cisco路由器并使用pexpect发出命令.它工作,但sendline()在输出中重复.甚至在使用setecho后使用False.代码是:

'''
Created on Nov 19, 2012

@author: Amit Barik
'''

import pexpect

hostname = 'hostname'
login_cmd = 'telnet ' + hostname + '.net'
username = 'username'
password = 'pwd'
prompt = hostname + '#'

p = pexpect.spawn(login_cmd)
p.setecho(False)
p.logfile = open('Log.log', 'w+')

p.expect('Username:')
print '1',repr(p.before)

p.sendline(username)
p.expect('Password:')
print '2',repr(p.before)

p.sendline(password)
p.expect(prompt)
print '3',repr(p.before)

cmd = 'show clock'
p.sendline(cmd)
p.expect(prompt)
print 'Output for {0}'.format(cmd), repr(p.before)
Run Code Online (Sandbox Code Playgroud)

输出是:

# On Python Console
Output for show clock 'show clock\r\n00:16:40.692 UTC Tue Nov 20 …
Run Code Online (Sandbox Code Playgroud)

python cisco pexpect

6
推荐指数
2
解决办法
6660
查看次数

美丽的汤找到具有隐藏风格的元素

我的简单需求。如何查找当前在网页上不可见的元素?我在猜测style="visibility:hidden"或者style="display:none"是隐藏元素的简单方法,但 BeautifulSoup 不知道它是否隐藏。

例如,HTML 是:

Textbox_Invisible1: <input id="tbi1" type="text" style="visibility:hidden">
Textbox_Invisible2: <input id="tbi2" type="text" class="hidden_elements">
Textbox1: <input id="tb1" type="text">
Run Code Online (Sandbox Code Playgroud)

所以我首先担心的是 BeautifulSoup 无法确定上述任何文本框是否被隐藏:

# Python 2.7
# Import BeautifulSoup
>>> source = """Textbox_Invisible1: <input id="tbi1" type="text" style="visibility:hidden">
...  Textbox_Invisible2: <input id="tbi2" type="text" class="hidden_elements">
...  Textbox1: <input id="tb1" type="text">"""
>>> soup1 = BeautifulSoup(source)
>>> soup1.find(id='tb1').hidden
False
>>> soup1.find(id='tbi1').hidden
False
>>> soup1.find(id='tbi2').hidden
False
>>> 
Run Code Online (Sandbox Code Playgroud)

我唯一的问题是,有没有办法找出隐藏的元素?(我们还必须考虑复杂的 HTML,其中可能隐藏了具有元素的元素)

html python beautifulsoup

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

覆盖django allauth以允许注册/登录模式

我正在尝试使用bootstrap3和Python 2.7上的最新django实现基本登录(和注册)模式.我正在使用Django-allauth库通过facebook和gmail实现登录.

默认使用django-allauth(ei默认为allauth.account.urls,allauth.account.view,allauth.account.forms文件),用户必须导航到URL http://sitename.com/accounts/loginhttp ://sitename.com/accounts/signup分别登录和注册.

有人可以给我一种方法来覆盖这种默认行为,这样,用户可以通过点击主页上的登录或注册模式登录或注册(而不是导航到/ accounts/...)?

我正在尝试对django-allauth库进行逆向工程,以了解在单击注册/登录页面后调用的内容以及如何覆盖它(或者我需要覆盖的所有内容)?

谢谢,

阿米特

django django-allauth

5
推荐指数
0
解决办法
830
查看次数

python单击帮助格式化换行符

我看到我的EPILOG中没有保留换行符吗?我想知道为什么只在一行包含74字符时才看到换行符吗?

# http://click.pocoo.org/5/commands/

import click, sys

def main_caller(*args, **kwargs):
    print('act on arguments', args, kwargs)

EPILOG = '''
# oneline
# twoline

\n
# oneline with 74char                                                   x
# twoline with 74char                                                   x
'''

@click.group(help='wwwwwwwwww', epilog=EPILOG, invoke_without_command=True, chain=True)
@click.argument('start_or_stop')
@click.option('-v', '--verbose', default=False, help='Print Verbose messages')
@click.option('-l', '--logfile', help='Path to logfile to store log messages')
@click.option('-a', '--action', multiple=True, type=click.Choice(['act1', 'act2', 'act3']), default=['act1', 'act2'])
def cli(*args, **kwargs):
    '''foo bar'''
    pass

@cli.command()
@click.option('--debug/--no-debug', default=False)
def cmd1(*args, **kwargs):
    print('cmd1', args, kwargs)
    return 'cmd11111' …
Run Code Online (Sandbox Code Playgroud)

python python-click

5
推荐指数
2
解决办法
1535
查看次数

Lombok @NonNull 空检查执行不适用于 Jackson 反序列化

我有一个简单的案例,当我使用 Java8 中的 Jackson (2.8) 和 Lombok(最新版本)将 JSON 字符串转换为 POJO 时,我想对 JSON 字符串中的值强制执行空检查。但是看起来@NonNull使用创建 pojo 时不会抛出异常ObjectMapper.convertValue,但是当使用构建器模式正常创建 pojo 时它工作正常”?

这是我的情况:

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.Lombok;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.extern.log4j.Log4j2;

@Log4j2
public class LearnJackson {
  public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();

  public static void main(final String[] args) throws IOException {
      learnToConvertJsonToSimplePojo();
  }

  public static void learnToConvertJsonToSimplePojo() throws IOException {
    String jsonString = "{}";
    JsonNode node = OBJECT_MAPPER.readValue(jsonString, JsonNode.class); …
Run Code Online (Sandbox Code Playgroud)

java json jackson lombok

5
推荐指数
1
解决办法
3656
查看次数