我遇到了一些对象管理器create()方法的可疑行为User.如果使用此方法,则看起来password不需要字段来创建User对象.结果你得到User空白password.如果您使用create_user方法并且未指定使用不可用的密码password创建User(通过set_unusable_password()).
我不确定为什么create()方法不会raise exception在您尝试创建用户时没有password- 在文档中指定此字段是必需的.有什么不对劲的create()方法/文档?
我有许多模型链接到User,我希望我的模板总是显示他的full_name(如果可用).有没有办法改变默认值User __unicode__()?或者还有另一种方法吗?
我有一个可以定义的配置文件模型,我__unicode__()应该将所有模型链接到它吗?对我来说似乎不是一个好主意.
想象一下,我需要显示这个对象的表单
class UserBagde
user = model.ForeignKey(User)
badge = models.ForeignKey(Bagde)
Run Code Online (Sandbox Code Playgroud)
我将不得不选择__unicodes__每个对象的盒子,不是吗?
如何在用户名中使用全名?
我正在使用django编写一个Web应用程序,现在我开始处理用户了.我正在尝试做简单的部分,只需通过管理界面创建一个新用户,但当我尝试这样做时,我收到一个错误,我没有找到任何关于它的信息.
我输入django admin,用超级用户登录,转到用户,添加用户.它只询问:用户名和密码.当我提交更改然后我得到NOT NULL约束失败,这:
NOT NULL constraint failed: auth_user.last_login
Run Code Online (Sandbox Code Playgroud)
我修改了django文档,并说它创建这样的用户:
所以,我打开一个终端,并执行"./manage.py shell""import django""import User"然后我尝试这个代码,但也失败了,它说:
NameError: name 'User' is not defined
Run Code Online (Sandbox Code Playgroud)
也许我在项目的第一部分改变了一些东西?我已经创建了模型,模板,url和used/static /来引用文件.
谢谢你的帮助!
我的自定义用户模型:
class MyUser(AbstractBaseUser):
username = models.CharField(unique=True,max_length=30)
email = models.EmailField(unique=True,max_length=75)
is_staff = models.IntegerField(default=False)
is_active = models.IntegerField(default=False)
date_joined = models.DateTimeField(default=None)
# Use default usermanager
objects = UserManager()
USERNAME_FIELD = 'email'
Run Code Online (Sandbox Code Playgroud)
有没有办法指定多个USERNAME_FIELD?有类似的东西['email','username'],用户可以通过电子邮件和用户名登录?
我是Django的新手,甚至在彻底找到这个问题的答案之后,我找不到任何答案.= /
我正在使用UserCretionForm来创建我的用户,我想知道一些事情:
1 - 如何管理此表单的属性?(例如,我不想显示"必需.30 charact ..."或"输入与上面相同的密码进行验证的提示.")
2 - 我想让它显示其他自定义字段.我该怎么做?(请尽量明确我必须写出代码的地方,因为我不是专家= D).(例如,在巴西,我们需要存储一些国家信息.这就是我需要这些字段的原因.)
提前致谢!(Y)
我试图迁移我的django模型:
from django.contrib.auth.models import User
class Post(models.Model):
headline = models.CharField(max_length=200)
slug = models.SlugField(max_length=200)
body = models.TextField(blank=True, null=True)
author = models.ForeignKey(User, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
我在创建模型后添加了author字段.
这是django创建的迁移:
# encoding: utf8
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [('articles', '0002_auto')]
operations = [
migrations.AddField(
field = models.ForeignKey(to_field=u'id', to=u'auth.User', blank=True, null=True),
name = 'author',
model_name = 'post',
),
]
Run Code Online (Sandbox Code Playgroud)
当我尝试运行./manage.py migrate时,这是我的回溯:
Operations to perform:
Synchronize unmigrated apps: ckeditor, sessions, admin, messages, auth, staticfiles, contenttypes, django_extensions
Apply all migrations: articles
Synchronizing apps without migrations: …Run Code Online (Sandbox Code Playgroud) 我正在写一个存储"Jobs"的应用程序.它们被定义为具有链接到"用户"的ForeignKey.我不明白在创建它时如何将ForeignKey传递给模型.我的Model for Job在没有ForeignKey的情况下运行良好,但现在我正在尝试将用户添加到系统中,我无法获得要验证的表单.
models.py:
from django.db import models
from django import forms
from django.contrib.auth.models import User
class Job(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=50, blank=True)
pub_date = models.DateTimeField('date published', auto_now_add=True)
orig_image = models.ImageField('uploaded image', upload_to='origImageDB/', blank=True)
clean_image = models.ImageField('clean image', upload_to='cleanImageDB/', blank=True)
fullsize_image = models.ImageField('fullsize image', upload_to='fullsizeImageDB/')
fullsize_clean_image = models.ImageField('fullsize clean image', upload_to='fullsizeCleanImageDB/')
regions = models.TextField(blank=True)
orig_regions = models.TextField(blank=True)
class JobForm(forms.ModelForm):
class Meta:
model = Job
Run Code Online (Sandbox Code Playgroud)
在views.py中我创建了如下对象:
if request.method == 'POST':
form = JobForm(request.POST, request.FILES)
if form.is_valid():
#Do something here …Run Code Online (Sandbox Code Playgroud) 我正在研究Django 1.5项目,我有一个自定义用户模型(让我们称之为CustomUser).另一个应用程序(SomeApp)需要引用此自定义用户模型.出于ForeignKey之类的目的,Django文档说要使用
User = settings.AUTH_USER_MODEL
Run Code Online (Sandbox Code Playgroud)
但是,SomeApp.models中的某些函数需要访问以前所知的内容User.objects.但是User现在是一个字符串而不是一个类,所以User.objects失败了.替代方案是
from django.contrib.auth import get_user_model
User = get_user_model()
Run Code Online (Sandbox Code Playgroud)
哪个适用于其他模块,但是当我在SomeApp的models.py中使用它时,Django引发了一个错误:
配置不正确("AUTH_USER_MODEL指的是尚未安装的型号'%s'"%settings.AUTH_USER_MODEL)
有任何想法吗?
编辑1 - 追溯:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "...\django-badger\badger\__init__.py", line 7, in <module>
from badger.models import Badge, Award, Progress
File "...\django-badger\badger\models.py", line 26, in <module>
User = get_user_model()
File "...\lib\site-packages\django\contrib\auth\__init__.py", line 127, in get_user_model
raise ImproperlyConfigured("AUTH_USER_MODEL refers to model '%s' that has not been installed" % settings.AUTH_USER_MODEL)
ImproperlyConfigured: AUTH_USER_MODEL refers to …Run Code Online (Sandbox Code Playgroud) 一个伟大的问候社区
我的问题与Django中的管理用户和架构用户的类型有关,一开始我请你道歉,以防万一我的问题可能太"新手"或没有意义,我开始把我与Django联系起来用户模式及其在项目中的不同工作可能性.
我有以下情况.
我正在构建一个应用程序,其中我将有三个不同的用户类型:
我使用默认的Django身份验证方案(django.contrib.auth).
最初,我确实在这个实体方案中思考,其中User表是auth_userDjango保存用户创建的表:
我有is_patient,is_medical和is_physiotherapist用户表中的布尔属性字段.
像特定细节一样,我理解在Django默认模型中,用户无法修改或添加属性或字段.
这是一个重要而有力的理由我不能添加的 is_patient,is_medical并且is_physiotherapist在用户表布尔字段.
经典建议是使用Userprofile表扩展User模型,在该表中我通过OneToOne关系向User Model添加字段或属性.基本样本如下:
就是这样,我得到了我在Django的用户可以拥有现场照片并在特定时刻上传一个...
利用前面的方案,以下模式可以适用于管理用户角色(和用户类型)patient,也可以作为替代方案?medicalphysiotherapist
我会在以下方面建立关系:
用户医疗和用户患者
用户物理治疗师和用户患者
他们和其他桌子之间......
通过这种方法,这些关系不会受到影响吗?
将在Users和UserProfile表之间保存不同的用户.这是可扩展性意义上的一个好习惯吗?我的表可能是崩溃还是我的数据库?
此外,我还看到了其他替代方案,例如:
我将有一个独立或独立的角色表/模型,这可以与Django用户模型相关(一个用户可以通过示例拥有许多角色)当我想要存储有关特定角色的角色的独家信息时,这种方法非常有用?
我忽略或不知道让我工作的粒度等级.我只看到权限和授权系统允许我使用创建,编辑和删除操作....
在这里,我可以看到创建群组吗?例如,医疗组并为其分配权限并将此权限链接到组成该组的用户?这是另一个好的选择吗?这个选项似乎更单一,虽然我不知道用户是否可以根据具有的组权限进行一些操作...我不知道这个想法是否正确/正确
我对患者,医疗和物理治疗师用户的要求需要构建自定义用户模型吗?
我创建了一个用户注册页面,它将用户添加到 Django 中的用户模型中
但保存数据时,密码未加密,即仅存储为文本。当用户尝试登录时,这会产生问题(因为 Django 尝试解密原始密码,但它们都不匹配)。
另外,我正在扩展用户模型,以便添加有关保存在配置文件模型中的用户的更多信息(使用一对一链接)
视图.py
def user_signup(request):
if request.method == "POST":
user_form = userSignup(request.POST)
phone = request.POST['phone']
address = request.POST['address']
pincode = request.POST['pincode']
if user_form.is_valid() :
user = user_form.save()
auth.login(request,user)
userdata = User.objects.all()
for userinfo in userdata:
if userinfo.username == user.username:
user_id=user.id
update_data = Profile.objects.get(pk = user_id)
update_data.address=address
update_data.phone=phone
update_data.pincode=pincode
update_data.save()
return redirect('/')
else:
return HttpResponse(" SIGNUP FAILED")
else:
form = userSignup()
profile_form = userSignup_profile()
return render(request,"user_signup.html",{'form':form, 'profile_form':profile_form})
def user_logout(request):
auth.logout(request)
return redirect('/')
Run Code Online (Sandbox Code Playgroud)
用户注册.html
<body>
<form action="user_signup" …Run Code Online (Sandbox Code Playgroud) django django-models django-forms django-registration django-users
django ×10
django-users ×10
django-forms ×2
python ×2
django-1.5 ×1
migration ×1
user-roles ×1