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来强制执行不同的配对