使用自定义字段扩展User模型(与Django的身份验证应用程序捆绑在一起)的最佳方法是什么?我也可能希望使用该电子邮件作为用户名(用于身份验证).
我希望django通过电子邮件验证用户,而不是通过用户名.一种方法是提供电子邮件值作为用户名值,但我不希望这样.原因是,我有一个网址/profile/<username>/,因此我没有网址/profile/abcd@gmail.com/.
另一个原因是所有电子邮件都是唯一的,但有时会发生用户名.因此我将自动创建用户名为fullName_ID.
我怎样才能让Django通过电子邮件进行身份验证?
这就是我创建用户的方式.
username = `abcd28`
user_email = `abcd@gmail.com`
user = User.objects.create_user(username, user_email, user_pass)
Run Code Online (Sandbox Code Playgroud)
这是我登录的方式.
email = request.POST['email']
password = request.POST['password']
username = User.objects.get(email=email.lower()).username
user = authenticate(username=username, password=password)
login(request, user)
Run Code Online (Sandbox Code Playgroud)
除了首先获取用户名之外,还有其他任何登录信息吗?
我有一个翻译不能在Django 1.6上工作的问题!我已经添加到我的settings.py中
LANGUAGE_CODE = 'en-us'
ugettext = lambda s: s
LANGUAGES = (
('en', ugettext('English')),
('de', ugettext('German')),
)
Run Code Online (Sandbox Code Playgroud)
还添加了中间件:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
Run Code Online (Sandbox Code Playgroud)
以及我的*.py文件,每当我使用一个字符串,它应该是l10nd:
from django.utils.translation import ugettext_lazy as _
Run Code Online (Sandbox Code Playgroud)
我的模板以
{% extends "base.html" %}
{% load i18n %}
Run Code Online (Sandbox Code Playgroud)
并且在模板内部比我使用trans占位符.例如
<h1>{% trans "Register a tank" %}</h1>
Run Code Online (Sandbox Code Playgroud)
事实上,字符串出现在locale/de/LC_MESSAGES/django.po中,当我运行时我已经翻译了它们.例如
msgid "Register a tank"
msgstr "Einen neuen Tank anmelden"
Run Code Online (Sandbox Code Playgroud)
我的浏览器设置为首先请求德语内容: 浏览器设置
我错过了什么?
PS我目前正在模糊的项目是在github上托管的:https://github.com/frlan/blankspot
我正在学习 Django,需要一些帮助。
我需要在我的用户模型中包含一个额外的布尔字段(我相信数据库中的 auth_user 表),并在管理用户时将其显示在管理界面中,例如此图像中的员工状态字段...
127:0.0.1:8000/管理员/用户:
和...
127.0.0.1:8000/admin/auth/user/2/change/ :
我不确定如何处理这个问题。我知道我必须扩展 AbstractUser 模型,然后可能手动将该字段添加到数据库中,但是如何更新管理界面的视图、表单和模板的新字段?我是否必须为所有这些重写 django 管理源代码,还是有更简单的方法?
我正在尝试使用django-multilingual并正确设置它.但我发现除了模板用法示例之外,django-multilingual的一切都很清楚.
我刚开始使用django并且我不知道,也许是因为这个原因,我无法弄清楚如何在模板端切换语言.
您是否有任何示例或任何"更多"明确的来源/文档?