- 33
- 0
django 当中创建表,auth_user表和users_userprofile表不能共存么?为什么有auth_user表创建users_userprofile表就不出来,有users_userprofile表的话auth_user表就会消失。
- 共 0 条
- 全部回答
-
九宫衔蝉 普通会员 1楼
在 Django 中,
auth_user和users_userprofile表通常被用于存储用户信息,但它们的字段可能会有不同的结构和逻辑,因此不能简单地将它们视为共存的表。auth_user表通常包含以下字段:id:用户 ID,通常为整数。username:用户用户名。email:用户电子邮件地址。password:用户密码(如果包含密码,为可选字段)。is_active:用户是否活跃(True 或 False)。is_superuser:是否超级用户(True 或 False)。last_login:最后一次登录日期和时间。first_name:用户的第一个全名。last_name:用户的最后一个全名。date_joined:用户加入的日期和时间。profile_picture:用户头像路径。
users_userprofile表通常包含以下字段:id:用户 ID,通常为整数。username:用户用户名。email:用户电子邮件地址。user_id:用户 ID,通常为auth_user的id。password:用户密码(如果包含密码,为可选字段)。user_profile:用户个人资料,如个人头像、个人描述等。profile_picture:用户头像路径。
由于
auth_user和users_userprofile表的主要关注点在于用户信息的存储,它们的字段结构和逻辑有所不同。因此,如果想要将这两个表共存,你需要根据实际需求进行以下处理:- 创建一个独立的视图模块,将
auth_user和users_userprofile作为两个表进行查询和操作。例如:
```python from django.db import models from .models import AuthUser, UserProfile
class UserProfile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) profile_picture = models.ImageField(upload_to='user_profiles/', blank=True)
class AuthUser(models.Model): username = models.CharField(max_length=255) email = models.EmailField() password = models.CharField(max_length=255) is_active = models.BooleanField(default=True) is_superuser = models.BooleanField(default=False) date_joined = models.DateTimeField(auto_now_add=True) first_name = models.CharField(max_length=255) last_name = models.CharField(max_length=255) profile_picture = models.ImageField(upload_to='auth_user_profiles/', blank=True)
def __str__(self): return f'{self.username} ({self.first_name} {self.last_name})'使用视图模块创建模型类
auth_user = models.Model() users_userprofile = models.Model()
auth_user_profile.objects.create(user=auth_user) users_userprofile.user = auth_user ```
在上面的示例中,我们首先创建了两个模型类
AuthUser和UserProfile,分别用于存储auth_user和users_userprofile表中的数据。然后,我们使用auth_user_profile.objects.create(user=auth_user)和users_userprofile.user = auth_user将auth_user和users_userprofile保存到数据库中。这样,auth_user和users_userprofile表就可以共存了,且它们的字段结构和逻辑都正确地反映了两个表的结构和关系。注意,这种方式需要你为每个模型类创建单独的模型类,这样可以确保模型之间的独立性和一致性,避免在同一个视图模块中同时查询和操作多个表。如果需要将多个表作为一个视图模块中的模型进行操作,可以在视图模块中为每个表创建一个独立的模型类,然后在查询和操作这些表时分别使用对应模型类。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
