相关疑难解决方法(0)

创建扩展用户配置文件

我在django中有一个扩展的UserProfile模型:

class UserProfile(models.Model):
  user = models.ForeignKey(User, unique=True)
  #other things in that profile
Run Code Online (Sandbox Code Playgroud)

还有一个signals.py:

from registration.signals import user_registered
from models import UserProfile
from django.contrib.auth.models import User

def createUserProfile(sender, instance, **kwargs):
  profile = users.models.UserProfile()
  profile.setUser(sender)
  profile.save()

user_registered.connect(createUserProfile, sender=User)
Run Code Online (Sandbox Code Playgroud)

我确保信号通过以下方式注册__init__.py:

import signals
Run Code Online (Sandbox Code Playgroud)

那么应该为每个注册的用户创建一个新的UserProfile,对吧?但事实并非如此.我尝试登录时总是得到"UserProfile匹配查询不存在"错误,这意味着数据库条目不存在.

我应该说我使用django-registration,它提供user_registered信号.

重要应用程序的结构是,我有一个名为"users"的应用程序,我有:models.py,signals.py,urls.py和views.py(以及其他一些在这里无关紧要的事情) ).UserProfile类在models.py中定义.

更新:我将signals.py更改为:

from django.db.models.signals import post_save
from models import UserProfile
from django.contrib.auth.models import User

def create_profile(sender, **kw):
    user = kw["instance"]
    if kw["created"]:
        profile = UserProfile()
        profile.user = user
        profile.save()

post_save.connect(create_profile, sender=User)
Run Code Online (Sandbox Code Playgroud)

但现在我得到了"IntegrityError":

"列user_id不是唯一的"

编辑2:

我找到了.看起来我以某种方式注册了两次信号.此处描述了解决方法: …

django django-registration

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

Django注册和多个配置文件

我在我的应用程序中使用django-registration.我想创建具有不同配置文件的不同类型的用户.例如,一个用户是教师而另一个用户是学生.

如何修改注册以设置user_type并创建正确的配置文件?

django registration profiles

10
推荐指数
1
解决办法
4198
查看次数

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

我正在尝试使用内部/外部用户特定的配置文件创建一个内部网/外部网,具有通用的通用配置文件.我在这个网站上看了几个答案,但没有一个专门解决我想要做的事情.下面是我到目前为止的(精简版)文件.

创建配置文件模型的最佳方法是什么,每个用户类型都有子配置文件?我尽量不要求自定义身份验证后端.

https://gist.github.com/1196077

django

4
推荐指数
1
解决办法
3455
查看次数

Django - 如何以最佳方式编写用户和配置文件处理?

我正在编写简单的网站,需要处理用户和配置文件.第一个初步想法是在用户处理中使用django的构建,但是用户模型太窄并且不包含我需要的字段.该文档提到了用户配置文件,但用户配置文件部分已从djangobook中删除,涵盖django 1.0(理想情况下,该解决方案应与django 1.2一起使用),并且Internet上充满了不同的解决方案,而不是让选择更容易(如用户模型继承,用户配置文件和django信号等).

我想知道,如何以良好,现代,快速和安全的方式来写这个.我应该尝试扩展django内置用户模型,还是应该创建自己的用户模型,以保留我需要的所有信息?您可以在下面找到工作解决方案的一些规格和期望:

  • 用户应该能够注册和验证
  • 每个用户都应该有个人资料(或包含所有必填字段的模型)
  • 用户不需要django内置管理面板,但他们需要通过简单的Web表单编辑他们的配置文件/模型

请告诉我你如何在应用程序中解决这些问题,以及使用django处理用户的最佳方法是什么.任何文章/博客或代码示例的链接都非常感谢!

python django profiles

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