Python 如何进行内部联接以仅获取保存在表上的值
如何仅从标记的Python 如何进行内部联接以仅获取保存在表上的值,python,django,Python,Django,如何仅从标记的表中的特定用户中获取保存的法则 当用户注册法律时,用户id(user\u id)和法律id(law\u id)保存在标记的表中。 如何在字段中仅获取用户注册的法律和按法律更新的订单 我的模型: class Law(models.Model): name = models.CharField('Nome', max_length=100) description = models.TextField('Descrição', blank = True, nu
表中的特定用户
中获取保存的法则
当用户注册法律时,用户id(user\u id
)和法律id(law\u id
)保存在标记的表中。
如何在
字段中仅获取用户注册的法律和按法律更新的订单
我的模型:
class Law(models.Model):
name = models.CharField('Nome', max_length=100)
description = models.TextField('Descrição', blank = True, null=True)
updated_at = models.DateTimeField(
'Updated at', auto_now=True
)
class Marked(models.Model):
law = models.ForeignKey(Law, on_delete=models.CASCADE, verbose_name='Lei', related_name='marcacaoArtigos')
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name='markedUser', related_name='markedUser')
在您的情况下,由于Marked
表中与user相关的名称是markedUser
,您可以这样做
user1 = User.objects.get(id=x)
user1.markedUser.all()
这将向您返回一组与标记的表中的user1
配对的所有定律。从你的相关名字来看,我认为你不完全理解这种关系是如何运作的。我建议您在这里阅读有关它们的内容:是的,所以要以列表的形式访问它们,您需要user1.markedUser.all()
。我不记得你是否需要括号。尝试使用和不使用哦,你没有指定你使用它的目的。它返回标记的
模型的实例。假设您在.all()
列表marked1
中命名了第一个实例marked1.law.name
会给你想要的。啊。因此,要获得不同的(法律、用户)对,您需要执行以下操作:user1.markedUser.order\u by().distinct()
它不起作用,但没问题。Tku适用于所有人。您还可以通过一起使用unique\u来强制执行不同的配对