标签: django-users

Django UserProfile ...没有密码

我想创建一个没有登录的用户子集......基本上是一种将摄影师字段添加到照片而不需要与该人关联的完整帐户的方法(因为在很多情况下,他们会从未真正登录过该网站).需要注意的是,我还希望以后能够为他们启用帐户.

所以,我认为这个问题变成了设置一个与User表关联的"People"表的最佳方法,而没有用UserProfile实际扩展User表.

python database django django-authentication django-users

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

Django:我的自定义用户模型中出现"username"错误 - "UserProfile"对象没有属性"username"

我是Django的新手,我在创建自定义用户模型时遇到了一些问题.我遵循了django文档中的每一步.这是我的模型:

    class UserProfile(models.Model):
user = models.OneToOneField(User)
comment = models.BooleanField()
score = models.IntegerField(null=True)
profilpic = models.ImageField(upload_to="/profilepics")
bio = models.CharField(max_length=140)
Run Code Online (Sandbox Code Playgroud)

然后我用django-registration创建了几个用户.但是当我去管理员并尝试删除我创建的用户或者当我尝试单击用户名时,我收到此错误:

AttributeError at /admin/auth/user/3/
'UserProfile' object has no attribute 'username'
Exception Value:    
'UserProfile' object has no attribute 'username'
Exception Location: /Users/marc-antoinelacroix/Desktop/Site/sportdub/projet/models.py in   __unicode__, line 14
Run Code Online (Sandbox Code Playgroud)

所以我想我必须在我的UserProfile模型中创建一个"用户名",并将其与django用户的用户名相关联,但我不知道该怎么做...

欢迎任何帮助.

谢谢!

django-models django-admin django-users

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

Django:无效的密码格式或未知的散列算法

当我想使用简单的CreateView创建新用户时,我有问题.一切都很好,我可以创建用户,但是当我想用新创建的用户进行日志记录时,我无法做到.

我在admin中输入了这种类型的密码:

无效的密码格式或未知的散列算法.

未存储原始密码,因此无法查看此用户的密码,但您可以使用此表单更改密码.

这是我的代码:

model.py

from django.db import models
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import AbstractUser, UserManager


    class CustomUser(AbstractUser):
        """app setting of user"""
        url = models.URLField(u'Site URL', max_length=100, null=True, unique=True)

    admin.site.register(CustomUser, UserAdmin)
Run Code Online (Sandbox Code Playgroud)

urls.py

from django.conf.urls.defaults import *
from models import CustomUser
from django.views.generic import CreateView
from django.contrib.auth.decorators import login_required
from django.core.urlresolvers import reverse

    urlpatterns = patterns('',
                   url(r'^create_user/$',(CreateView.as_view(model=CustomUser,       get_success_url =lambda: reverse('create_user'),
                                                                             template_name="create_user.html")), name='create_user'),
                   )
Run Code Online (Sandbox Code Playgroud)

create_user.html

<div title="Create Form " id="/create_user">
        <p> <b>Create account:</b> </p>            
        {{ …
Run Code Online (Sandbox Code Playgroud)

django django-admin django-users

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

django 1.5扩展默认用户模型或替换它

环境:Django 1.5.1 + Django CMS 2.4.1 + Zinnia最新+我的自定义应用+自定义Django CMS插件

基本上我可以扩展默认的Django(1.5.X)用户模型,如NetTuts +上的Django Ribbit Tutorial

要么

在段落中替换完全自定义的模型,如Django Dev doc或Django2Scoops示例:"处理用户模型"

为了测试我决定使用子类AbstractUser来自Django2Scoops书:"如果您喜欢Django的用户模型字段,请选择此选项,但需要额外的..fields."

但是我有以下错误:

notification.noticesetting:'user'定义了与模型'auth.User'的关系,该模型已被换出.更新关系以指向settings.AUTH_USER_MODEL.cmsplugin_zinnia.latestentriesplugin:'authors'定义了与模型'auth.User'的关系,该模型已被换出.更新关系以指向settings.AUTH_USER_MODEL.

cms.pageuser:'created_by'定义了与模型'auth.User'的关系,该模型已被换出.更新关系以指向settings.AUTH_USER_MODEL.cms.pageusergroup:'created_by'定义了与模型'auth.User'的关系,该模型已被换出.更新关系以指向settings.AUTH_USER_MODEL.

经过几个小时的阅读和测试,我找到了

指定自定义用户模型(扩展AbstractUser)不起作用

正如错误消息所示 - 您需要更新关系以指向settings.AUTH_USER_MODEL.第二个错误("模型已被换出......")是您直接引用用户模型这一事实的副作用.更改ForieignKey引用后,第三个错误将消失.我们已尽力确保顺利过渡到新的用户模型,但它不能完全透明.应用编写者需要将他们的应用更新为1.5兼容.基本上,如果Django 1.4应用程序包含对用户的硬编码外键引用,则它与Django 1.5不会100%兼容.拜托,你能举个更多例子吗?

Django/Python:更新关系以指向settings.AUTH_USER_MODEL

在settings_example.py中,您有AUTH_USER_MODEL ='users.User'.但是你使用的应用程序 - menu.bookmark--与django.contrib.auth.User有关 - 你不能同时拥有这两者.设置AUTH_USER_MODEL意味着您要用自己的内置Django用户模型替换它.有关 详细信息,请参见 http://procrastinatingdev.com/django/using-configurable-user-models-in-django-1-5/.

但我不明白我该怎么解决这个问题.

我需要什么:

- 用户与学院班级(一个学院 - >更多用户)相关联

- 用户或机构可以拥有不同的权限,并查看不同的django cms页面/插件.

- 用户的几个字段.

Subclass AbstractUser是正确的吗?

如何解决"换出"错误?

我应该创建类似于OpenTreeMap代码的东西

这个代码是不是已经弃用了?

谢谢!

django django-models django-authentication django-cms django-users

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

在扩展Django的用户模型时,如何为property()传递lambda函数?

我一直在寻求扩展Django用户模型,虽然我有信心我可以使它工作,但我确实想要了解一行代码.

我一直在参考以下教程:http: //blog.tivix.com/2012/01/06/extending-user-model-in-django/

但我不能为我的生活理解下面的代码行如何工作:

User.profile = property(lambda u: u.get_profile() )
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,这会将User.profile的getter方法设置为匿名函数,该函数将用户作为参数并返回配置文件,但是,如果我引用myuser.profile,则实际传递的参数何时?

我希望我能正确地沟通自己.任何帮助理解这一点将不胜感激!

django django-users python-2.7

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

Django - 从用户模型中删除用户名

为了在Django 1.5.x中创建新的用户模型,有两种方法:

  1. 继承AbstractUser类,它是您获得的默认用户模型,这样您就可以使用所需的任何属性扩展它.但是,如果要删除任何字段,则技术上可行,但不建议使用 ; 我相信,即使可以做到,也违背了OOP原则.因此,如果您想要更改当前的用户模型,则有第二种方法.
  2. 继承AbstractBaseUser,通过查看代码提供了非常基本的功能.除非从默认的Django用户模型中复制它,否则您将错过权限,配置文件检索和绝对URL构造的所有优点.

以上是我对情况的理解.如果我错了,请纠正我,但这并不意味着如果我想简单地username从模型中删除该字段,因为我根本不需要它,我必须复制粘贴框架中提供的模型代码和继承AbstractBaseUserPermissionsMixin?对于这么简单的事情,这种方法对我来说看起来并不是很漂亮,而且它看起来有点奇怪,因为我很确定自定义用户模型的引入主要是因为email字段的流行用例作为用户标识符而不是username.

请你的想法(和更正).

django django-users

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

如何在 Django 1.9 中实现密码更改表单

我的python项目的网址在这里:https : //github.com/abylikhsanov/social

我正在尝试实现密码更改表单,以便用户可以更改他或她的密码。我该如何实施?应用程序应跟踪先前的密码,并且不应允许用户使用先前使用的密码。另外,我想实现重置密码功能。

python django django-users

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

匿名用户错误

我正在尝试将表单数据保存给匿名用户,但是当我尝试在 CreateView 中保存一些表单数据时出现以下错误。我不清楚问题是什么?

ValueError: Cannot assign "<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x11126bc18>>": "EUser.user" must be a "User" instance.
Run Code Online (Sandbox Code Playgroud)

楷模:

class EUser(models.Model):
    online_account = models.BooleanField()

    supplier1 = models.OneToOneField(SupplierAccount)
    supplier2 = models.OneToOneField(SupplierAccount)
    supplier3 = models.OneToOneField(SupplierAccount)

    address = models.OneToOneField(Address)
    user = models.ForeignKey(settings.AUTH_USER_MODEL)

class SupplierAccount(models.Model):
    supplier = models.ForeignKey(Supplier)
    username = models.CharField(max_length=255)
    password = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)

形式:

class ServiceTypeForm(forms.ModelForm):
    # BOOL_CHOICES = ((False, 'No'), (True, 'Yes'))

    # online_account = forms.BooleanField(widget=forms.RadioSelect(choices=BOOL_CHOICES))

    def __init__(self, *args, **kwargs):
        super(ServiceTypeForm, self).__init__(*args, **kwargs)
        self.fields['service_type'].initial = 'D'

    class Meta:
        model = EUser
        fields = …
Run Code Online (Sandbox Code Playgroud)

python django django-users

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

Django:导入错误:无法导入名称“用户”

我是 django 的新手,在从 AbstractBaseUser 模型创建用户时遇到了一些困难。现在我开始怀疑我的用户模型是否没有以正确的方式构建。这是我的用户模型

from django.db import models
from django.contrib.auth.models import AbstractBaseUser

class User(AbstractBaseUser):
    '''
    Custom user class.
    '''
    username = models.CharField('username', max_length=10, unique=True, db_index=True)
    email = models.EmailField('email address', unique=True)
    joined = models.DateTimeField(auto_now_add=True)
    is_active = models.BooleanField(default=True)
    is_admin = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)

并且用户仅在此其他模型中被引用

from django.db import models
from user_profile import User

class Tweet(models.Model):
    '''
    Tweet model
    '''
    user = models.ForeignKey(User)
    text = models.CharField(max_length=160)
    created_date = models.DateTimeField(auto_now_add=True)
    country = models.CharField(max_length=30)
    is_active = models.BooleanField(default=True)
Run Code Online (Sandbox Code Playgroud)

然后当我尝试将我的新模型迁移到 db 时

Traceback (most recent call last):
  File "manage.py", …
Run Code Online (Sandbox Code Playgroud)

python django model django-models django-users

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

InconsistentMigrationHistory 错误与自定义 django 用户模型

我正在创建一个自定义用户模型。

我运行命令python manage.py makemigrations accounts然后运行python manage.py migrate accounts它输出以下错误:

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
    utility.execute()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/__init__.py", line 359, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/base.py", line 294, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/base.py", line 345, in execute
    output = self.handle(*args, **options)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 86, in handle
    executor.loader.check_consistent_history(connection)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/migrations/loader.py", line 292, in check_consistent_history
    connection.alias,
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency accounts.0001_initial on …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-users

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