标签: django-registration

创建扩展用户配置文件

我在django中有一个扩展的UserProfile模型:

class UserProfile(models.Model):
  user = models.ForeignKey(User, unique=True)
  #other things in that profile
Run Code Online (Sandbox Code Playgroud)

还有一个signals.py:

from registration.signals import user_registered
from models import UserProfile
from django.contrib.auth.models import User

def createUserProfile(sender, instance, **kwargs):
  profile = users.models.UserProfile()
  profile.setUser(sender)
  profile.save()

user_registered.connect(createUserProfile, sender=User)
Run Code Online (Sandbox Code Playgroud)

我确保信号通过以下方式注册__init__.py:

import signals
Run Code Online (Sandbox Code Playgroud)

那么应该为每个注册的用户创建一个新的UserProfile,对吧?但事实并非如此.我尝试登录时总是得到"UserProfile匹配查询不存在"错误,这意味着数据库条目不存在.

我应该说我使用django-registration,它提供user_registered信号.

重要应用程序的结构是,我有一个名为"users"的应用程序,我有:models.py,signals.py,urls.py和views.py(以及其他一些在这里无关紧要的事情) ).UserProfile类在models.py中定义.

更新:我将signals.py更改为:

from django.db.models.signals import post_save
from models import UserProfile
from django.contrib.auth.models import User

def create_profile(sender, **kw):
    user = kw["instance"]
    if kw["created"]:
        profile = UserProfile()
        profile.user = user
        profile.save()

post_save.connect(create_profile, sender=User)
Run Code Online (Sandbox Code Playgroud)

但现在我得到了"IntegrityError":

"列user_id不是唯一的"

编辑2:

我找到了.看起来我以某种方式注册了两次信号.此处描述了解决方法: …

django django-registration

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

在django模板中获取用户信息

从django模板获取用户信息的最佳方法是什么?

例如,如果我只想:

  1. 如果用户已登录,则显示"欢迎[用户名]"
  2. 否则,显示登录按钮.

我正在使用django-registration/authentication

django django-authentication django-registration

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

CSRF验证失败.请求中止.在django

我正在关注Django 1.3 Web开发.并且对于登录,我收到以下错误

Forbidden (403)
CSRF verification failed. Request aborted.
Help
Reason given for failure:
    CSRF token missing or incorrect.
Run Code Online (Sandbox Code Playgroud)

这是我的settings.py包含的APPS.这本书应该是这样说的.

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    'djangocricket.Cricket',
    'djangocricket.cms'
)
Run Code Online (Sandbox Code Playgroud)

这本书说,它应该包含,django.contrib.auth.views.login ..我把它包括在内

urlpatterns = patterns('',
    # Examples:
    url(r'^$', 'djangocricket.Cricket.views.index', name='default'),
    url(r'^user/(\w+)/$', 'djangocricket.Cricket.views.user_home', name='user home'),
    url(r'^login/$', 'django.contrib.auth.views.login'),
    # url(r'^djangocricket/', include('djangocricket.foo.urls')),

    # Uncomment the admin/doc line below to …
Run Code Online (Sandbox Code Playgroud)

django django-views django-registration

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

Django-Registration:用户名发送电子邮件

如何使用django-registration使用电子邮件而不是用户名进行身份验证.

进一步说明如何在安装注册模块后强制执行此更改.

我在这里编辑解决方案任何人都知道一个好的黑客,使django注册使用电子邮件作为用户名吗?在lib文件夹中?

django django-registration

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

已经在/ appname /注册:模型用户已经注册

我正在尝试将django.contrib.auth用户与我自己的UserProfile连接,当我访问该网站时,我收到了"AlreadyRegistered"错误.

这是追溯:

Environment:


Request Method: GET
Request URL: myurl.com/django/appname/

Django Version: 1.4.2
Python Version: 2.6.8
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.admin',
 'polls',
 'appname',
 'registration',
 'django.contrib.humanize')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response
  101.                             request.path_info)
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py" in resolve
  298.             for pattern in self.url_patterns:
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py" in url_patterns
  328.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py" in urlconf_module
  323.             self._urlconf_module = import_module(self.urlconf_name)
File "/usr/lib/python2.6/site-packages/django/utils/importlib.py" in import_module
  35.     __import__(name)
File "/var/www/mysite/mysite/urls.py" in <module>
  3. …
Run Code Online (Sandbox Code Playgroud)

python django django-registration

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

Django-nonrel + Django-registration问题:重置密码时意外的关键字参数'uidb36'

我正在使用Django-nonrel注册应用程序.事情似乎工作正常,除非我尝试重置密码.当点击发送给我的重置密码链接时,Django会产生错误信息:

password_reset_confirm() got an unexpected keyword argument 'uidb36'
Run Code Online (Sandbox Code Playgroud)

我的问题:有没有人看过它,知道什么是治愈方法?

编辑:

这个问题是由registration\auth_urls.py引起的 - 它们复制了django\contrib\auth\urls.py中的条目,在Django-nonrel中循环修补了该文件的版本.

任何想法为什么它在那里,我可以实际删除它或修复它否则?

django google-app-engine django-registration django-nonrel

21
推荐指数
3
解决办法
5453
查看次数

django-social-auth django-registration和django-profiles - 在一起

有没有人一起使用django-social-auth,django-registrationdjango-profiles.他们一起工作得好吗?我已经建立了社交认证,但我在某处读到django-allauth更好.我应该切换到那个吗?

请指教

更新:

我已经allauth在我的项目中使用它并且工作正常.您不需要使用django-registrationallauth,因为它集成在内.但是,我使用自定义用户配置文件,这是一个比...更好的选择django-profiles.

django django-registration django-socialauth

20
推荐指数
1
解决办法
5285
查看次数

使用Django注册应用程序在Django中处理帐户/配置文件的好地方在哪里?

我注意到在我登录Django注册后,它重定向到我accounts/profile/.默认情况下Django注册url.py没有处理accounts/profile/,所以我需要创建自己的.

实际上这个问题有三个方面:

  1. 登录后为什么会重定向到accounts/profile/?有办法改变吗?成功登录后,我希望Django能够在登录页面之前重定向回页面.
  2. 如果我要创建自己的视图和模板accounts/profile/,那么我应该把它放在哪里?Django的内置users(auth_user)在项目中的所有Django应用程序之间共享,所以我应该将它view.py放在项目文件夹中而不是放在app文件夹中吗?
  3. 或者Django的个人资料实际上是在照顾这一切account/profiles/?我已经User用自己的方式扩展了Django的课程UserProfile,但它更像是User桌面上的其他字段而不是实际的"配置文件"(我没有创建头像或类似的东西,只是简单的东西,如地址和电话号码,但最重要的是,一些我的应用依赖的自定义用户类型.

python django django-profiles django-registration

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

Django - 在用户创建时创建用户配置文件

我在这里关注Django文档以实现一个简单的目标:创建新用户后立即创建用户配置文件.

我有一个'帐户'应用程序,我的accounts.models看起来像这样:

# -*- coding: utf-8 -*-
from django.db import models
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from main.models import Store

class UserProfile(models.Model):

    GENRE_CHOICES = (
        ('m', 'Masculino'),
        ('f', 'Feminino'),
    )
    MARITAL_STATUS_CHOICES = (
        ('s', 'Solteiro'),
        ('c', 'Casado'),
        ('d', 'Divorciado'),
        ('v', 'Viúvo'),
    )

    user = models.ForeignKey(User, unique=True)
    birth_date = models.DateField()
    genre = models.CharField(max_length=1, choices=GENRE_CHOICES)
    address = models.CharField(max_length=150)
    postal_code_4 = models.PositiveIntegerField()
    postal_code_3 = models.PositiveIntegerField()
    locatity = models.CharField(max_length=30)
    marital_status = models.CharField(max_length=1, choices=MARITAL_STATUS_CHOICES)
    child_amount = models.PositiveSmallIntegerField()
    is_merchant = models.BooleanField(default=False) …
Run Code Online (Sandbox Code Playgroud)

django user-profile django-registration

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

从Django UserCreateForm中删除help_text

可能是一个糟糕的问题,但我正在使用Django的UserCreationForm(略微修改为包含电子邮件),我想删除Django自动在HTML页面上显示的help_text.

在我的HTML页面的注册部分,它有用户名,电子邮件,密码1和密码2字段.但是在用户名下面是"必需的.不超过30个字符.字母,数字和@ ...".在密码确认(密码2)下,它显示"输入与上面相同的密码进行验证".

我该如何删除这些?

#models.py
class UserCreateForm(UserCreationForm):
    email = forms.EmailField(required=True)

    def save(self, commit=True):
        user = super(UserCreateForm, self).save(commit=False)
        user.email = self.cleaned_data['email']
        if commit:
            user.save()
        return user

    class Meta:
        model = User
        fields = ("username", "email", "password1", "password2")
        exclude = ('username.help_text')

#views.py
def index(request):
    r = Movie.objects.all().order_by('-pub_date')
    form = UserCreateForm()
    return render_to_response('qanda/index.html', {'latest_movie_list': r, 'form':form},     context_instance = RequestContext(request))

#index.html
<form action = "/home/register/" method = "post" id = "register">{% csrf_token %}
    <h6> Create an account </h6>
    {{ form.as_p }}
    <input type = …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-registration

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