标签: django-allauth

如何在使用django-allauth时自定义用户配置文件

我有一个django-allauth app的django项目.我需要在注册时从用户那里收集其他数据.我在这里遇到了类似的问题, 但不幸的是,没有人回答了个人资料定制部分.

根据提供的文件django-allauth:

ACCOUNT_SIGNUP_FORM_CLASS(= None)

指向自定义表单类(例如‘myapp.forms.SignupForm’)的字符串,用于在注册期间向用户请求其他输入(例如,简报注册,出生日期).此类应实现一个‘save’方法,接受新注册的用户作为其唯一参数.

我是django的新手,我正在努力解决这个问题.有人可以提供这种自定义表单类的示例吗?我是否需要添加一个模型类,以及一个链接到喜欢的用户对象这个

django profile django-allauth

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

Django 1.10.1'my_templatetag'不是注册的标签库.必须是以下之一:

我想要一个自定义的菜单,取决于您所属的组.我使用Django 1.10.1,allauth等.当我试图制作我的模板标签失败时,它说:¨

TemplateSyntaxError at /
'my_templatetag' is not a registered tag library. Must be one of:
account
account_tags
admin_list
admin_modify
admin_static
admin_urls
cache
i18n
l10n
log
socialaccount
socialaccount_tags
static
staticfiles
tz
Run Code Online (Sandbox Code Playgroud)

'my_templatetag.py'看起来像这样:

from django import template
from django.contrib.auth.models import Group


register = template.Library()

@register.filter(name='has_group')
def has_group(user, group_name):
    group =  Group.objects.get(name=group_name)
    return group in user.groups.all()
Run Code Online (Sandbox Code Playgroud)

和我的.html文件中出现错误,说,

{%  load my_templatetag %}
Run Code Online (Sandbox Code Playgroud)

我试图重启服务器数百万次,我也尝试更改所有名称,该应用程序是settings.py中的INSTALLED_APPS的一部分.我究竟做错了什么?

django templatetags django-allauth

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

Django allauth社交登录:使用注册的电子邮件自动链接社交网站配置文件

我的目标是为我的Django站点的用户创建最简单的登录体验.我想象的是:

  1. 登录屏幕显示给用户
  2. 用户选择使用Facebook或Google登录
  3. 用户在外部站点输入密码
  4. 用户可以作为经过身份验证的用户与我的网站进行互动

好的,这部分很简单,只需安装django-allauth并进行配置即可.

但我也想提供与本地用户一起使用该网站的选项.它还有另一个步骤:

  1. 登录屏幕显示给用户
  2. 用户选择注册
  3. 用户输入凭据
  4. 网站发送验证邮件
  5. 用户点击电子邮件链接,可以作为经过身份验证的用户与我的网站进行互动

好的,默认身份验证和allauth都可以做到.但现在是百万美元的问题.

如果他们更改登录方式,我该如何自动关联他们的Google,FB和本地帐户?

看到他们登录的方式,我有他们的电子邮件地址.是否有可能使用django-allauth?我知道我可以通过用户干预来做到这一点.今天,默认行为是拒绝登录,说明电子邮件已经注册.

如果不可能只进行配置,我会接受答案,这个答案给出了我应该在allauth代码中进行哪些修改以支持此工作流程的方向.

有很多理由这样做.用户将忘记他们用于进行身份验证的方法,有时会使用Google,有时使用FB,有时还会使用本地用户帐户.我们已经有很多本地用户帐户和社交帐户将是一个新功能.我希望用户保持自己的身份.我设想可以询问用户好友列表,所以如果他们使用Google登录,我也想拥有他们的FB帐户.

这是一个业余爱好网站,没有很好的安全要求,所以请不要回答这不是一个明智的安全实施.

稍后,我将创建一个自定义用户模型,将电子邮件作为登录ID.但我会很满意答案,让我自动关联具有所需用户名的默认用户模型的帐户.

我正在使用Django == 1.5.4和django-allauth == 0.13.0

django django-1.5 django-allauth

38
推荐指数
3
解决办法
9701
查看次数

Django allauth示例[Errno 61]连接被拒绝

当我运行django allauth示例并尝试发送电子邮件时出现以下错误:

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 571, in create_connection
raise err
error: [Errno 61] Connection refused
Run Code Online (Sandbox Code Playgroud)

在OS X 10.9.1下

python django django-allauth

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

在django-rest-framework中插入django-allauth作为端点

我在我的网站上使用django-allauth进行社交登录.我还有一个由django-rest-framework提供支持的REST API,它充当移动应用程序的后端.有没有办法可以直接将allauth的身份验证后端插入REST api,以便我可以验证(并注册)在移动应用程序中使用Facebook登录的用户?

澄清一下:Facebook登录部分由本机SDK处理.我需要一个类似POST /user(即创建一个新用户)的端点,但需要将Facebook oauth令牌作为输入而不是电子邮件/密码等.

python django django-rest-framework django-allauth

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

覆盖django-allauth的默认模板

我用这个社会注册/注册图书馆django allauth作为我的一个项目.如何自定义默认模板和表单以提供更好的外观和感觉?

django django-templates django-forms django-formwizard django-allauth

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

Django:SocialApp匹配查询不存在

我在django-allauth面临一个问题.

我配置localhost:9000/admin/ 了以下详细信息

socialapp.

provider:Name:Client id:App ID,或consumer key Key:Secret:etc.

我设置SITE_ID = 2(因为我将默认站点example.com更改为localhost:9000)

In setting.py


   INSTALLED_APPS = (
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.sites',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'django.contrib.admin',
        'uni_form',
        'allauth',
        'allauth.account',
        'allauth.socialaccount',
        'bootstrapform',
        # 'allauth.socialaccount.providers.twitter',
        # 'allauth.socialaccount.providers.openid',
         'allauth.socialaccount.providers.facebook',
    )
    SOCIALACCOUNT_PROVIDERS = \
        { 'facebook':
            { 'SCOPE': ['email', 'publish_stream'],
              'AUTH_PARAMS': { 'auth_type': 'reauthenticate' },
              'METHOD': 'oauth2' ,
              'LOCALE_FUNC': 'path.to.callable'} }
Run Code Online (Sandbox Code Playgroud)

现在我正在上网 http://localhost:9000/accounts/facebook/login

我收到错误: SocialApp matching query does not exist.

请帮我解决一下我在这里做错了什么.

django django-allauth

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

使用django-allauth登录信号将用户重定向到另一个URL

我使用Django-allauth作为我的登录/注册相关的东西,所以当用户注册(第一次)进入我的网站时,我/thanks/通过在settings.py文件中定义下面的设置将他重定向到页面

LOGIN_REDIRECT_URL ='/ thanks /'

但是当用户下次尝试登录时(如果已经注册),我应该将他重定向到'/dashboard/'URL

所以试着改变它,Django-allauth signals如下所示,根本不起作用

@receiver(allauth.account.signals.user_logged_in)
def registered_user_login(sender, **kwargs):
    instance = User.objects.get_by_natural_key(kwargs['user'])
    print instance.last_login==instance.date_joined,"??????????????????????????????"
    if not instance.last_login==instance.date_joined:
        return HttpResponseRedirect(reverse('dashboard'))
Run Code Online (Sandbox Code Playgroud)

所以任何人都可以让我知道如何重定向用户/dashboard/进行正常登录,我在上面的信号代码中做错了什么?

编辑

根据以下答案进行一些修改后pennersr,我的AccountAdapter课程如下所示

from allauth.account.adapter import DefaultAccountAdapter
# from django.contrib.auth.models import User

class AccountAdapter(DefaultAccountAdapter):

  def get_login_redirect_url(self, request):
    if request.user.last_login == request.user.date_joined:
        return '/registration/success/'
    else:
        return '/dashboard/'
Run Code Online (Sandbox Code Playgroud)

但是,它仍在重定向用户/dashboard/,我的逻辑在确定用户第一次出错时?

django django-signals django-allauth

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

从django-allauth中删除"用户名"字段

当django-registration不支持django 1.5和自定义用户模型时.我正在尝试使用django-allauth,从最初看它是很棒的产品.

问题我有 - 需要用户名字段,但在我的应用程序中我没有用户名.所以,allauth文档说:

**Available settings:**
ACCOUNT_AUTHENTICATION_METHOD (="username" | "email" | "username_email")
Run Code Online (Sandbox Code Playgroud)

指定要使用的登录方法 - 用户是否通过输入用户名,电子邮件地址或两者之一来登录.

好的,我完成了,并得到了错误:

AssertionError at /accounts/signup/
No exception supplied
Run Code Online (Sandbox Code Playgroud)

models.py:

class MyUser(AbstractBaseUser, PermissionsMixin):
    title = models.CharField ('Name', max_length=100)
    email = models.EmailField('Email', max_length=255, unique=True)
    ...
Run Code Online (Sandbox Code Playgroud)

settings.py

ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_AUTHENTICATION_METHOD = ('email')
AUTH_USER_MODEL = 'internboard.MyUser'
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

django django-allauth

20
推荐指数
2
解决办法
8182
查看次数

Django rest-auth allauth注册电子邮件,名字和姓氏,没有用户名

我正在使用django-rest-auth和allauth在我的django应用程序中登录和注册.我没有为登录或注册编写任何额外的单行代码.使用emailid和提供的密码注册成功.

我不使用用户名进行身份验证,而是使用电子邮件

在我可浏览的注册api中,我得到以下内容:

在此输入图像描述

除了这些字段,我想要first_name和last_name(默认的auth_user表有这些列),这样我新创建的auth_user也会设置这些字段以及电子邮件和散列密码.

我怎样才能做到这一点?这个可浏览的表单本身并不那么重要,但能够存储first_name和last_name是我主要需要的.

django django-rest-framework django-allauth django-rest-auth

20
推荐指数
3
解决办法
6285
查看次数