Django 无法分配-必须是一个";UserProfile";实例
我定义了一个Django 无法分配-必须是一个";UserProfile";实例,django,django-models,django-authentication,django-users,Django,Django Models,Django Authentication,Django Users,我定义了一个类UserProfile,它将默认的用户作为外键。 现在,另一个类A有一个指向UserProfile的外键 因此,为了在类A中保存任何实例,我应该如何给它userprofile对象 另外,制作类用户配置文件是否意味着类用户仍在使用,而类用户配置文件只是其他一些表格? 我需要知道这一点,因为我必须处理用户配置文件的创建,所以我应该知道什么存储在哪里 -- 困惑我假设您的用户配置文件模型旨在存储有关用户的其他信息。如果是这样,那么最好的方法就是: 使用要存储的附加信息字段或要提供的附加
类UserProfile
,它将默认的用户
作为外键。
现在,另一个类A
有一个指向UserProfile
的外键因此,为了在类A中保存任何实例,我应该如何给它userprofile对象 另外,制作
类用户配置文件
是否意味着类用户
仍在使用,而类用户配置文件
只是其他一些表格?我需要知道这一点,因为我必须处理用户配置文件的创建,所以我应该知道什么存储在哪里 --
困惑我假设您的
用户配置文件
模型旨在存储有关用户的其他信息。如果是这样,那么最好的方法就是:
- 使用要存储的附加信息字段或要提供的附加方法定义模型,并将
从模型添加到用户模型。这将确保每个用户只能创建一个模型实例OneToOneField
- 设置为
,其中myapp.MyModel
是包含模型myapp
的应用程序,您要使用该模型存储有关用户的额外信息MyModel
models.OneToOneField(用户)
或models.ForeignKey(用户,unique=True)
的模型创建应用程序李>
AUTH\u PROFILE\u模块='myapp.UserProfile'
指向您的项目,使其了解您的UserProfile李>
auth\u user
和一个user\u profile
表。这是因为使用UserProfiles并不意味着所有用户都必须拥有配置文件。只有UserProfile
模型中定义的附加字段才会出现在user\u profile
表中
我需要知道这一点,因为我必须
负责用户配置文件的创建,所以
我应该知道什么东西存放在哪里
James Bennett创建了两个很好的应用程序,经过几个小时的仔细阅读将非常有帮助,尤其是在用户注册部分。去看看和。我应该为
类用户自己创建一个外键吗?是的,我读过:两件事-1。这是否停止使用类用户
(我已将外键用于用户模型)2。任何可能需要用户信息的其他型号都应该为类用户提供一个外键
,这样行吗?或者我在AUTH_PROFILE_模块中设置的新模型会接管吗?我希望我明白了。谢谢,谢谢西蒙。我只是有一个小小的疑问-这意味着用户身份验证仍然可以在需要时使用普通用户类作为外键来完成,我不应该使用UserProfile类,除非我关心“profiles”!我认为这是一个设计问题。如果您项目的所有用户都有一个配置文件,那么您可以始终导入UserProfile,但我想更常见的做法是只导入用户以创建可重用的应用程序。在第一个选项中,您的用户配置文件将成为所有其他应用程序的依赖项,这可能是不可取的。