首页 > 解决方案 > 如何进行内部联接以仅获取保存在表中的值

问题描述

如何仅从law特定表格user中获取保存的内容?marked

当用户注册法律时,用户id( user_id)和法律id( law_id)保存在marked表中。我怎样才能只获得用户注册的法律和法律updated_at领域的命令?

我的模型:

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')

标签: pythondjango

解决方案


在您的情况下,由于Marked表中与 user 的相关名称是markedUser,因此您可以

user1 = User.objects.get(id=x)
user1.markedUser.all()

user1这将返回给您一组与表中配对的所有法则Marked。从你的相关名字来看,我认为你并不完全理解这些关系是如何运作的。我建议在这里阅读它们:related_name


推荐阅读