标签: django-users

用户管理器方法create()和create_user()

我遇到了一些对象管理器create()方法的可疑行为User.如果使用此方法,则看起来password不需要字段来创建User对象.结果你得到User空白password.如果您使用create_user方法并且未指定使用不可用的密码password创建User(通过set_unusable_password()).

我不确定为什么create()方法不会raise exception在您尝试创建用户时没有password- 在文档中指定此字段是必需的.有什么不对劲的create()方法/文档?

django django-managers django-users

8
推荐指数
1
解决办法
7059
查看次数

Django - 用户全名为unicode

我有许多模型链接到User,我希望我的模板总是显示他的full_name(如果可用).有没有办法改变默认值User __unicode__()?或者还有另一种方法吗?

我有一个可以定义的配置文件模型,我__unicode__()应该将所有模型链接到它吗?对我来说似乎不是一个好主意.


想象一下,我需要显示这个对象的表单

class UserBagde
    user = model.ForeignKey(User)
    badge = models.ForeignKey(Bagde)
Run Code Online (Sandbox Code Playgroud)

我将不得不选择__unicodes__每个对象的盒子,不是吗?
如何在用户名中使用全名?

python django django-models django-users

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

在django中创建用户(NOT NULL约束失败:auth_user.last_login)

我正在使用django编写一个Web应用程序,现在我开始处理用户了.我正在尝试做简单的部分,只需通过管理界面创建一个新用户,但当我尝试这样做时,我收到一个错误,我没有找到任何关于它的信息.

我输入django admin,用超级用户登录,转到用户,添加用户.它只询问:用户名和密码.当我提交更改然后我得到NOT NULL约束失败,这:

NOT NULL constraint failed: auth_user.last_login
Run Code Online (Sandbox Code Playgroud)

我修改了django文档,并说它创建这样的用户:

  • 来自django.contrib.auth.models导入用户
  • user = User.objects.create_user('john','lennon @ thebeatles.com','johnpassword')

所以,我打开一个终端,并执行"./manage.py shell""import django""import User"然后我尝试这个代码,但也失败了,它说:

NameError: name 'User' is not defined
Run Code Online (Sandbox Code Playgroud)

也许我在项目的第一部分改变了一些东西?我已经创建了模型,模板,url和used/static /来引用文件.

谢谢你的帮助!

django django-users

8
推荐指数
1
解决办法
8716
查看次数

django用户模型中有多个USERNAME_FIELD

我的自定义用户模型:

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 django-authentication django-users

8
推荐指数
2
解决办法
6832
查看次数

管理UserCreationForm属性和字段

我是Django的新手,甚至在彻底找到这个问题的答案之后,我找不到任何答案.= /

我正在使用UserCretionForm来创建我的用户,我想知道一些事情:

1 - 如何管理此表单的属性?(例如,我不想显示"必需.30 charact ..."或"输入与上面相同的密码进行验证的提示.")

2 - 我想让它显示其他自定义字段.我该怎么做?(请尽量明确我必须写出代码的地方,因为我不是专家= D).(例如,在巴西,我们需要存储一些国家信息.这就是我需要这些字段的原因.)

提前致谢!(Y)

django django-users

7
推荐指数
1
解决办法
1359
查看次数

Django在外键中用户迁移模型失败

我试图迁移我的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)

migration django django-users

7
推荐指数
1
解决办法
3688
查看次数

在Django中,如何将ForeignKey传递给Model的实例?

我正在写一个存储"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 django-models django-forms django-users

6
推荐指数
2
解决办法
2320
查看次数

Django 1.5:访问models.py中的自定义用户模型字段

我正在研究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-models django-users django-1.5

6
推荐指数
3
解决办法
8793
查看次数

Django上的用户角色架构

一个伟大的问候社区

我的问题与Django中的管理用户和架构用户的类型有关,一开始我请你道歉,以防万一我的问题可能太"新手"或没有意义,我开始把我与Django联系起来用户模式及其在项目中的不同工作可能性.

我有以下情况.

我正在构建一个应用程序,其中我将有三个不同的用户类型:

  • 患者
  • 物理治疗师

我使用默认的Django身份验证方案(django.contrib.auth).

最初,我确实在这个实体方案中思考,其中User表是auth_userDjango保存用户创建的表:

架构思考(不好 - ?)

我有is_patient,is_medicalis_physiotherapist用户表中的布尔属性字段.

像特定细节一样,我理解在Django默认模型中,用户无法修改或添加属性或字段.

这是一个重要而有力的理由我不能添加的 is_patient,is_medical并且is_physiotherapist在用户表布尔字段.

经典建议是使用Userprofile表扩展User模型,在该表中我通过OneToOne关系向User Model添加字段或属性.基本样本如下:

扩展Django用户模型

就是这样,我得到了我在Django的用户可以拥有现场照片并在特定时刻上传一个...

利用前面的方案,以下模式可以适用于管理用户角色(和用户类型)patient,也可以作为替代方案?medicalphysiotherapist

其他架构也是如此

我会在以下方面建立关系:

  • 用户医疗和用户患者

  • 用户物理治疗师和用户患者

他们和其他桌子之间......

通过这种方法,这些关系不会受到影响吗?

将在Users和UserProfile表之间保存不同的用户.这是可扩展性意义上的一个好习惯吗?我的表可能是崩溃还是我的数据库?


此外,我还看到了其他替代方案,例如:

  1. 角色表/模型

我将有一个独立或独立的角色表/模型,这可以与Django用户模型相关(一个用户可以通过示例拥有许多角色)当我想要存储有关特定角色的角色的独家信息时,这种方法非常有用?

  1. Django权限和授权

我忽略或不知道让我工作的粒度等级.我只看到权限和授权系统允许我使用创建,编辑和删除操作....

在这里,我可以看到创建群组吗?例如,医疗组并为其分配权限并将此权限链接到组成该组的用户?这是另一个好的选择吗?这个选项似乎更单一,虽然我不知道用户是否可以根据具有的组权限进行一些操作...我不知道这个想法是否正确/正确

  1. AUTH_USER_MODEL 创建自定义用户模型

我对患者,医疗和物理治疗师用户的要求需要构建自定义用户模型吗?

python django django-models user-roles django-users

6
推荐指数
1
解决办法
1991
查看次数

如何在将密码保存到用户模型 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

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