Django 多个用户配置文件/子配置文件

2023-12-02

我正在尝试创建一个具有内部/外部用户特定配置文件和通用通用配置文件的内联网/外联网。我已经查看了该网站上的几个答案,但没有一个具体解决我想要做的事情。以下是我迄今为止拥有的(精简的)文件。

创建配置文件模型以及针对每种用户类型的子配置文件的最佳方法是什么?如果可能的话,我尝试不要求自定义身份验证后端。

https://gist.github.com/1196077


我有一个解决方案,我不知道它是否是最好的,但看看它:

模型.py

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

class Pollster(models.Model):
    """docstring for Polister"""
    user   = models.OneToOneField(User, related_name = 'polister', unique=True)
    cedule = models.CharField( max_length = 100 ) 

class Respondent(models.Model):
    """ """
    born_date   = models.DateField( verbose_name=u'fecha de nacimiento' )
    cedule      = models.CharField( max_length = 100, verbose_name=u'cedula' ) 
    comunity    = models.CharField( max_length = 100, verbose_name=u'comunidad')
    phone       = models.CharField( max_length = 50, verbose_name=u'telefono')
    sanrelation = models.TextField( verbose_name =u'Relacion con SAN')
    user        = models.OneToOneField( User, related_name = 'respondent')

我创建了一个中间件:所以

我创建 middleware.py

from django.contrib.auth.models import User
from encuestas.models import Pollster, Respondent

class RequestMiddleWare(object):
    """docstring for """
    def process_request(self,request):
        if isPollster(request.user):
            request.user.userprofile = Pollster.objects.get( user = request.user.id)
        elif isRespondent(request.user):
            request.user.userprofile = Respondent.objects.get(user = request.user.id)   
        return None   

def isPollster(user):
    return Pollster.objects.filter(user=user.id).exists()

def isRespondent(user):
    return Respondent.objects.filter(user=user.id).exists()

并且您需要为中间件配置settings.py: 添加到 MIDDLEWARE_CLASSES 属性:

'encuestas.middleware.RequestMiddleWare'

encuestas 是 my_app 名称 middleware 是中间件文件 RequestMiddleWare 是中间件类

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 多个用户配置文件/子配置文件 的相关文章

随机推荐

  • 隐含的路径归纳

    这是一个后续问题在 Agda 中进行路径归纳 我想知道什么时候这个结构可能更具表现力 在我看来 我们总是可以这样表达 f forall A gt x y A gt x y gt some type f refl instance of so
  • MySQL:获取父子结构的根节点

    我有一个与此类似的表 Id ParentId 1 0 2 1 3 0 4 3 5 3 6 0 7 6 8 7 给定一
  • 如何使用 C# Parallel.For 实现 OpenMP 多级代码

    如何使用 C Parallel For 在以下 OpenMP 代码中实现 OpenMP 代码 pragma omp parallel float data new float 1000 pragma omp for for int i 0
  • 即使未注册,也会在 WooCommerce 感谢页面上显示客户详细信息

    在 WooCommerce 中 对于登录用户 感谢 已收到订单 页面确实会显示客户详细信息 例如姓名 地址和电子邮件 但是当客户未注册时什么也没有 如何确保非注册用户在支付成功后 能像注册用户一样在Thankyou 已下单 页面看到自己的详
  • 如何使用HtmlAgilityPack进行异步调用?

    我正在尝试获取带有 id 的表table matches可用的here 问题是表是使用加载的ajax所以我没有得到完整的html下载页面时的代码 string url http www oddsportal com matches socc
  • 如何使用 Firestore 数据库快照填充表日历

    我正在尝试填充要在 TableCalendar 上显示的事件地图 使用表日历包 要填写事件 我需要一个 Map 所以一开始我创建了这个 Map
  • VB.net 到 MySql 存储过程错误

    我是存储过程的新手 所以我可能会错过一些简单的东西 但我研究了基础知识 并且一直试图从 vb net 代码集成它 我创建了一个简单的存储过程 我认为 它只运行今天结果的数据查询 例行DDL 注意 例程主体前后的注释不会被服务器存储 DELI
  • 显示最后一个非空单元格的地址(如果值不唯一)

    我有以下 Excel 电子表格 A B C D E F 1 Jan Feb March April May 2 Profit 100 200 200 3 Cell Reference last non empty cell In Row 2
  • 如果超过 78 个字符,则使用 TIMESTAMP 的 TO_CHAR 会引发 ORA-01877

    我面临一个奇怪的问题 我正在尝试将一些数字转换为 单词 只需这样做 TO CHAR TO TIMESTAMP LPAD nvl trunc 99999999 0 9 0 FF9 FFSP AS amt in words 效果很好 输出是 九
  • 在 webfaction 上隐藏安全 django 设置信息

    我试图隐藏 webfaction 上 django 应用程序的数据库密码等安全信息 但我找不到如何以及在哪里使用环境变量设置这些信息 我开发了一个可以用 pip 安装的包 pip install djangosecure 在你的 setti
  • 单元测试 Angular Observables

    我是测试领域的新手 刚刚开始为现有的 Angular 2 代码编写单元测试 我有一个函数confirmDelete返回Obserable
  • DataTables+Datepicker 按日期范围过滤表

    尝试使用两个有界日期选择器按日期范围实现数据表过滤器 我在 SO 上见过很少类似的问题 但没有一个答案对我有用 到目前为止 我设法实现了界面元素 但不知道如何将它们组合在一起以进一步进行 任何帮助表示赞赏 var myTableData i
  • 在 R 包中包含 TMB C++ 代码的指南

    我最近发现了 TMB 的神奇之处 并且正在开发一个包 最好在其中包含 TMB c 模板 以用于计算成本相当高的模型 我假设有可能 在软件包安装时自动编译 TMB 源代码 但我在 TMB 文档中找不到与此相关的任何明确指南 到目前为止 我的替
  • 如何在 C# 中创建 Trie [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有谁知道在哪里可以找到如何在 C 中构造 trie 的示例 我正在尝试使用字典 单词列表并用它创建一个字典树 这是我自己的代码 从我的答案中提取如何
  • 使用 Java 8 Streams 的收集器根据现有键/值对增加值

    假设有一个List然后Object包含两个方法 getUserId and getPoints 考虑一下List包含三个对象 它们包含以下数据 userId A 3 points userId A 5 points userId B 1 p
  • jqGrid 迭代子网格中的网格数据

    我想迭代网格对象中包含的所有数据 我的网格有一个包含子网格对象的定义 并以这种方式创建 var grid gridID var pager pagerID grid jqGrid url GetBaseWSUrl MyWs asmx MyM
  • 使用 VBA 将 Excel 数据保存为 csv - 删除文件末尾的空白行以保存

    我正在 VBA 中创建一组 csv 文件 我的脚本正在创建我需要的数据集 但行数在循环的多次迭代中有所不同 例如 对于 i 2 我有 100 000 行 但对于 i 3 我有 22 000 行 问题是 当 Excel 保存这些单独的 csv
  • 使用方法体的 Java 8 谓词仅被调用一次?

    我检查了以下片段 public static
  • 包括使用 data.table[by=...] 时的所有排列

    我有一个大data table我正在使用以下方法将其折叠到月份级别 by 变量有 5 个 级别数 c 4 3 106 3 1380 106 是月份 1380 是地理单位 事实证明 有一些 0 因为有些单元格没有值 by放弃这些 但我希望它保
  • Django 多个用户配置文件/子配置文件

    我正在尝试创建一个具有内部 外部用户特定配置文件和通用通用配置文件的内联网 外联网 我已经查看了该网站上的几个答案 但没有一个具体解决我想要做的事情 以下是我迄今为止拥有的 精简的 文件 创建配置文件模型以及针对每种用户类型的子配置文件的最