当用户注册法律时,用户id (user_id)和law id (law_id)保存在marked表中。
当用户在法律中插入描述时,使用相同的user_id和相同的law_id创建一个新的元组。
我试图只获取一次法律数据,但我的查询是为marked表中存在的每个元组返回一个规则。
我的模特:
class Law(models.Model):
name = models.CharField('Nome', max_length=100)
descriptionlaw = models.TextField('Descrição', blank = True, null=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')
description = models.TextField('Descrição', blank = True, null=True)我的问题是:
user1 = User.objects.get(id= request.user.id)
marked = user1.markedUser.all()那是我的桌子
"id" "description" "law_id" "user_id"
"1" "desc1" "1" "1"
"2" "desc2" "1" "1"
"3" "desc3" "1" "1"
"4" "desc4" "2" "1"
"5" "desc5" "2" "1" 因此,在本例中,我希望只接收一次law_id=1和一次law_id=2。但是我收到了三次law_id=1和两次law_id=2。
----------edit-----------
在我看来,我需要显示law 1和law 2的值。
要在我的视图中显示的值的示例:
{{law.id}} = 1,
{{law.name}} = law1,
{{law.descriptionlaw}} -> 'law1 description'
{{law.id}} = 2,
{{law.name}} = law2,
{{law.descriptionlaw}} -> 'law2 description'发布于 2018-12-06 17:38:45
在我看来,我需要展示法律1和法律2的价值。
您想要显示法律属性,那么应该选择law模型:
user1 = User.objects.get(id= request.user.id)
laws = Law.objects.filter( marcacaoArtigos__user = user1 ).distinct()因为您有一个related_name on Marked to Law,所以您应该在查询中使用它来组成filter表达式。
请记住将laws发送到模板。
https://stackoverflow.com/questions/53655192
复制相似问题