- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有几个模型,它们有一个外键返回到 Django 中的一个模型,该模型有一个外键返回到 auth User。
models.py
class UserDetails(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
related_name='userdetail_related')
details = models.CharField(max_length=100)
email = models.EmailField(unique=True)
class UserInformation(models.Model):
user = models.ForeignKey(
UserDetails,
related_name='userinfo_related')
info = models.CharField(max_length=100, default='this')
编辑
在我看来,我想从 self.request.user 访问 UserInformation 模型。
我可以通过以下方式访问我的 View 中的 UserDetails:
details = self.request.user.userdetail_related.filter(
user=self.request.user).first()
但我似乎无法通过以下方式访问 UserInformation:
info = self.request.user.userdetail_related.filter(
user=self.request.user).first().userinfo_related.filter(
info='this').first()
我可以让它发挥作用的唯一方法是:
details = self.request.user.userdetail_related.filter(
user=self.request.user).first()
info = details.userinfo_related.filter(
info='this').first()
但这肯定会两次访问数据库,这是我不想要的。
是否有人有更好的方法使用 session 用户“通过”UserDetails 从 UserInformation 获取信息?
最佳答案
您可以使用以下内容:
user_info = UserInformation.objects.filter(user__user=self.request.user).first()
此外,当您访问 UserDetails
时,您实际上并不需要过滤器,因为您正在尝试从 user
本身访问相关对象。因此,以下内容也可以。
details = self.request.user.userdetail_related.first()
顺便说一句,我认为您在这里需要 OneToOneField
,因为一个 user
应该只有一个 UserDetails
。
关于Django 通过另一个 related_name 使用 related_name 进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36907085/
我有几个模型,它们有一个外键返回到 Django 中的一个模型,该模型有一个外键返回到 auth User。 models.py class UserDetails(models.Model):
经过一年的 Django 经验,我发现我不太确定我使用 Django related_names正确。 想象一下我有三个模型 classA(models.Model): pass classB
根据 documentation ,相关名称必须是唯一的。再次根据 documentation 的默认值(如果开发人员未明确设置)是 FOO_set ,其中 FOO 是源模型名称。 因此,如果我有两个
我的模型发生了现场冲突: class Visit(models.Model): user = models.ForeignKey(User) visitor = models.Fo
related_name 参数对 ManyToManyField 和 ForeignKey 字段有什么用处?比如给定下面的代码,related_name='maps'的作用是什么? class Map
例子: class Route(models.Model): last_waypoint_visited = models.ForeignKey('WayPoint') class WayPo
抱歉没有描述性的标题,但我真的不知道如何措辞。 假设我有两个模型: class Person(...): name = ... #have an attribute class Family(..
我有以下型号: class A(models.Model): name = models.CharField(max_length=100) c = models.ForeignKey
我有一个用户模型: Class User(models.Model): #some fields 还有另一个 Profile Model,它由字段 -> 母亲和父亲组成。 Class Profi
我有一个抽象基础模型和 2 个继承模型,我需要强制相关名称采用特定格式。 class Animal(models.Model): legs = models.IntegerField(rela
先定义两个模型,一个是A,一个是B,是一对多的类型。 ? 1
我有这个抽象模型: class HasSystemMessage(models.Model): class Meta: abstract = True messages
我正在使用 Python(3.7) 和 Django(2.2) 开发一个项目,其中我实现了两个模型 ItemModel 和 Images 因此每个项目都会有多个图像并将项目添加到 images 模型中
我有两个非常相似的 M2M 领域模型,不知何故,我试图查询其中一个,它工作得很好,但当我尝试使用另一个模型的相同代码时,它给了我错误。我能找到的唯一区别是 lated_name 我找到了解决方法,但我
我的大部分 Django 模型都使用相同的 User Mixin,因此我想为该字段动态创建 related_name。 我希望它是 TestModel 变成 test_models 的类名,或者甚至是
当我在多个字段上使用 django Prefetch 对象 ( https://docs.djangoproject.com/en/2.2/ref/models/querysets/#prefetch
我试图在 Django 中设计一个带有一些审计字段的模型。例如创建于、创建于、更新于和更新于。这四列将在不同应用程序的所有模型中重复出现。 我的第一个问题,是否有一种方法可以放置这些列,并且可以在我每
我最近在我的 Django 模型中遇到了 ForeignKey 冲突。我需要有两个外键(owner、assigned_to)最终指向同一个模型(一个用户)。 据我了解,我需要一个 related_na
我真的很喜欢 Peewee ORM。它轻巧,易于使用,并且有很好的文档记录。我难以理解的一件事是实现外键时使用的 related_name 属性。我永远不确定该属性是否应该与表或列相关。有人可以向我确
我已经搜索了一段时间来解决我的问题,但我似乎无法解决这个问题。 所以我有两个模型: class Messages(models.Model): _db = 'somedb' id =
我是一名优秀的程序员,十分优秀!