如果字符串字段不为空,如何连接表

阿卜杜先生

我必须展示来自法律的所有文章。除此之外,每篇文章都可以有描述,也可以没有。我必须显示所有文章和你的描述,但我不知道如何在highlight description不为空时加入描述和文章

我的view

def details(request, pk):
 law = get_object_or_404(Law, pk=pk)    
 articles = Article.objects.filter(law=pk)
 articles = (
 Article
 .objects
 .filter(law=pk)
 .annotate(
     is_marked=Exists(
         Highlight
         .objects
         .filter(
             article_id=OuterRef('id'),
             user=request.user
         )
        )
     )
 )   
context = {
    'articles': articles,    
}
template_name = 'leis/details.html'
return render(request, template_name, context)

我的detail.html

<div class="article-post"> 
   {% for article in articles %}   
      {{article}}
   {% endfor %}
</div>

那是我的model

class Law(models.Model):
    name  = models.CharField('Name', max_length=100)
    description = models.TextField('Description', blank = True, null=True)

class Article(models.Model):
    article = models.TextField('Artigo/Inciso')
    number = models.IntegerField('Number', blank=True, null=True)
    law = models.ForeignKey(Law, on_delete=models.CASCADE, verbose_name='Law', related_name='articles')

此类与特定用户在特定法律中的特定文章中所做的描述一起保存:

class Highlight(models.Model):
    law = models.ForeignKey(Law, on_delete=models.CASCADE, verbose_name='Law', related_name='highlightArticles')
    article = models.ForeignKey(Law, on_delete=models.CASCADE, verbose_name='Article', related_name='highlightLaw')
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name='highlightUsers', related_name='highlightUsers')
    is_marked = models.BooleanField('Is it marked?', blank=True, default=False)
    description = models.TextField('Description', blank = True, null=True)

我如何加入表格以显示特定用户对您的特定描述的所有文章?

玉范

你可以试试:

Article.objects.filter(law=pk, highlight__description__isnull=False).annotate(description=(F('highlight__description')))

它将返回所有highlight description不为空的文章,并且可以description使用 {{ article.description }} 在您的视图中显示

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果变量不为空,Laravel 刀片连接字符串

来自分类Dev

如何使字符串输入不为空

来自分类Dev

跨不为空的列连接字符串

来自分类Dev

如果字符串不为空,如何在控制器中返回空视图?

来自分类Dev

如果字符串不为null,FluentValidation如何检查Length?

来自分类Dev

如果值不为零,如何输入新字符串

来自分类Dev

如何在Java中检查不为空的字符串?

来自分类Dev

取字符串(如果不为空则无法按预期工作)

来自分类Dev

如果从左连接表中的值不为空,则获取计数

来自分类Dev

如果查询字符串中的一个字段为空且其字符串格式,则返回表中的所有值

来自分类Dev

如果查询字符串中的一个字段为空且其字符串格式,则返回表中的所有值

来自分类Dev

如何连接字符串数组字段以显示为一个字符串(如果其为数组)

来自分类Dev

如何连接字符串数组字段以显示为一个字符串(如果其为数组)

来自分类Dev

如何检查多个字符串变量是否不为null或为空?

来自分类Dev

在Linq中修剪字符串(如果不为null)

来自分类Dev

如果字符串不为空则检查是否为有效电子邮件的流畅验证

来自分类Dev

如果字符串之一为空,如何处理缩进字符串?

来自分类Dev

字符串不为空时进行bash

来自分类Dev

“字符串不为空”的正则表达式

来自分类Dev

仅当字符串不为空时才执行查询

来自分类Dev

如何修复“试图连接表和字符串”?

来自分类Dev

加快字符串字段的连接

来自分类Dev

PHP-检查变量既不为空也不为字符串

来自分类Dev

如果不为空,则按字段分组

来自分类Dev

如果字段不为空,则使用MYSQL JOIN

来自分类Dev

连接表上的字符串值

来自分类Dev

连接表上的字符串值

来自分类Dev

如果外键不为空,则左连接多个表-MySQL优化

来自分类Dev

如果STRING_AGG不为空或为NULL,则将CONCAT / CONCAT_WS与STRING_AGG一起使用,来前置字符串?

Related 相关文章

  1. 1

    如果变量不为空,Laravel 刀片连接字符串

  2. 2

    如何使字符串输入不为空

  3. 3

    跨不为空的列连接字符串

  4. 4

    如果字符串不为空,如何在控制器中返回空视图?

  5. 5

    如果字符串不为null,FluentValidation如何检查Length?

  6. 6

    如果值不为零,如何输入新字符串

  7. 7

    如何在Java中检查不为空的字符串?

  8. 8

    取字符串(如果不为空则无法按预期工作)

  9. 9

    如果从左连接表中的值不为空,则获取计数

  10. 10

    如果查询字符串中的一个字段为空且其字符串格式,则返回表中的所有值

  11. 11

    如果查询字符串中的一个字段为空且其字符串格式,则返回表中的所有值

  12. 12

    如何连接字符串数组字段以显示为一个字符串(如果其为数组)

  13. 13

    如何连接字符串数组字段以显示为一个字符串(如果其为数组)

  14. 14

    如何检查多个字符串变量是否不为null或为空?

  15. 15

    在Linq中修剪字符串(如果不为null)

  16. 16

    如果字符串不为空则检查是否为有效电子邮件的流畅验证

  17. 17

    如果字符串之一为空,如何处理缩进字符串?

  18. 18

    字符串不为空时进行bash

  19. 19

    “字符串不为空”的正则表达式

  20. 20

    仅当字符串不为空时才执行查询

  21. 21

    如何修复“试图连接表和字符串”?

  22. 22

    加快字符串字段的连接

  23. 23

    PHP-检查变量既不为空也不为字符串

  24. 24

    如果不为空,则按字段分组

  25. 25

    如果字段不为空,则使用MYSQL JOIN

  26. 26

    连接表上的字符串值

  27. 27

    连接表上的字符串值

  28. 28

    如果外键不为空,则左连接多个表-MySQL优化

  29. 29

    如果STRING_AGG不为空或为NULL,则将CONCAT / CONCAT_WS与STRING_AGG一起使用,来前置字符串?

热门标签

归档