django>=1.5的可选用户模型,带有电子邮件字段和其他功能

django-altuser的Python项目详细描述


安装

将altuser放入已安装的应用程序中

INSTALLED_APPS += (
    'altuser',
    )

并从available altuser/models.py中配置您首选的用户模型, 例如

AUTH_USER_MODEL = 'altuser.MailSocialUser'

可用型号

  • MailUser
  • MailSocialUser
  • MailConfirmedUser
  • MailConfirmedSocialUser
  • MailSocialConfirmfollowUser
  • MailConfirmedSocialConfirmfollowUser

用法

一个管

如果将此用户模型与另一个配置文件模型一起使用,则 应该将此字段放在您的配置文件模型上

user = models.OneToOneField(settings.AUTH_USER_MODEL,
                           related_name='profile')

如果有多个配置文件类型,则应使用user.get_profile()来获取 与此用户关联的正确配置文件,但您还必须设置

ALTUSER_PROFILES_BREL = ['profile']

到您拥有的各种配置文件的反向关系名称(relate_name)列表。 例如,如果有两个模型(客户机和管理器)与一个OneToOneField关联到 我们的用户模型,它们有不同的相关名称,一个客户端配置文件和另一个客户端配置文件 manager_profile,则altuser_profile必须是[“client_profile”,“manager_profile”]

一般关系

实际上,您还可以使用内部配置文件类型泛型关系 在提供的AbstractMailuser上,这将允许您强制 每个用户的配置文件类型,是否使用取决于您。

# used in this way: self.user.get().usermodelfield
user = generic.GenericRelation(settings.AUTH_USER_MODEL,
content_type_field='profile_type',
object_id_field='profile_id')

这样的通用关系允许您拥有用户和配置文件 在同一内联中,例如在管理中:

from django.contrib import admin
from .models import MannequineProfile
from django.contrib.auth import get_user_model
from django.contrib.contenttypes import generic

class UserInline(generic.GenericTabularInline):
    model=get_user_model()
    extra=1
    max_num=1
ct_field = 'profile_type'
ct_fk_field = 'profile_id'
exclude = ('last_login', 'is_staff', 'is_superuser',
        'groups', 'user_permissions' ,'likes',
        'follows')


class ProfileAdmin(admin.ModelAdmin):
    inlines = [
    UserInline,
    ]


admin.site.register(Profile, ProfileAdmin)

还要注意,如果删除具有GenericRelation的对象,则任何具有指向该对象的GenericForeignKey的对象也将被删除。 在上面的示例中,这意味着如果删除了配置文件对象,则指向该对象的任何用户对象都将同时被删除。

确认型号

对于使用邮件确认模型,您必须使用[django-mail_confirmation](http://v.licheni.net/drc/django-mail_confirmation.git

若要筛选已确认社交关系的用户,请执行以下操作:

get_user_model().objects.filter(id=user.id, follows=otheruser, relations__confirmed__confirmed=True)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
具有多用户OU和多访问CNs的java Spring LDAP身份验证   java分配的变量神秘地变为null   java比较两个表或文本文件,并用行号和列输出差异   java如何在同一构建目录中设置netbeans中的文件路径?   java如何在avro模式中定义byte[]和LocalDateTime?   java在多个活动和片段中使用相同的微调器。实施它的最佳方式是什么?   java使用OOPS扩展已编写的类   java如何在特定于文件的基础上禁用Eclipse中的编译器警告?   java将字符串转换为日期的格式不正确   Java文件从一台服务器复制到另一台服务器   java Jacksonal和JacksonApperasl的最新jar版本是什么?   java如何在使用selenium chrome web驱动程序时禁用chrome中的身份验证提示   java是什么。推荐人和推荐人。Eclipse工作区中的元数据以及它们是否应该在设备之间同步?   java我应该把sqlite db文件放在哪里,这样我的jar就可以访问它了?这对连接字符串有何影响?   java如何在选择单元格时设置JTable标题背景色   java Cassandra 2 Hector:复合行键上的范围切片查询返回空行   java方法注释继承   Python字节对象与java   java Android和从sqlite数据库加载listview