我有一个django-allauth app的django项目.我需要在注册时从用户那里收集其他数据.我在这里遇到了类似的问题, 但不幸的是,没有人回答了个人资料定制部分.
ACCOUNT_SIGNUP_FORM_CLASS(=None)指向自定义表单类(例如
‘myapp.forms.SignupForm’)的字符串,用于在注册期间向用户请求其他输入(例如,简报注册,出生日期).此类应实现一个‘save’方法,接受新注册的用户作为其唯一参数.
我是django的新手,我正在努力解决这个问题.有人可以提供这种自定义表单类的示例吗?我是否需要添加一个模型类,以及一个链接到喜欢的用户对象这个 ?
我想要一个自定义的菜单,取决于您所属的组.我使用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站点的用户创建最简单的登录体验.我想象的是:
好的,这部分很简单,只需安装django-allauth并进行配置即可.
但我也想提供与本地用户一起使用该网站的选项.它还有另一个步骤:
好的,默认身份验证和allauth都可以做到.但现在是百万美元的问题.
如果他们更改登录方式,我该如何自动关联他们的Google,FB和本地帐户?
看到他们登录的方式,我有他们的电子邮件地址.是否有可能使用django-allauth?我知道我可以通过用户干预来做到这一点.今天,默认行为是拒绝登录,说明电子邮件已经注册.
如果不可能只进行配置,我会接受答案,这个答案给出了我应该在allauth代码中进行哪些修改以支持此工作流程的方向.
有很多理由这样做.用户将忘记他们用于进行身份验证的方法,有时会使用Google,有时使用FB,有时还会使用本地用户帐户.我们已经有很多本地用户帐户和社交帐户将是一个新功能.我希望用户保持自己的身份.我设想可以询问用户好友列表,所以如果他们使用Google登录,我也想拥有他们的FB帐户.
这是一个业余爱好网站,没有很好的安全要求,所以请不要回答这不是一个明智的安全实施.
稍后,我将创建一个自定义用户模型,将电子邮件作为登录ID.但我会很满意答案,让我自动关联具有所需用户名的默认用户模型的帐户.
我正在使用Django == 1.5.4和django-allauth == 0.13.0
当我运行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下
我在我的网站上使用django-allauth进行社交登录.我还有一个由django-rest-framework提供支持的REST API,它充当移动应用程序的后端.有没有办法可以直接将allauth的身份验证后端插入REST api,以便我可以验证(并注册)在移动应用程序中使用Facebook登录的用户?
澄清一下:Facebook登录部分由本机SDK处理.我需要一个类似POST /user(即创建一个新用户)的端点,但需要将Facebook oauth令牌作为输入而不是电子邮件/密码等.
我用这个社会注册/注册图书馆django allauth作为我的一个项目.如何自定义默认模板和表单以提供更好的外观和感觉?
django django-templates django-forms django-formwizard django-allauth
我在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-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-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-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
django ×10
django-allauth ×10
python ×2
django-1.5 ×1
django-forms ×1
profile ×1
templatetags ×1