Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django用户帖子按年份筛选_Python_Django - Fatal编程技术网

Python Django用户帖子按年份筛选

Python Django用户帖子按年份筛选,python,django,Python,Django,在Django中,我需要按年度筛选用户帖子,因此我在视图中执行了以下操作: 观点: 在HTML中 books.author.id books.author books.total_books 它起作用了,它显示了总数,但没有打印作者用户名,而是打印了作者ID,而作者ID为空。 Django版本3.0.8 这是完整的HTML: {% block content %} <div class="container"> <div class

在Django中,我需要按年度筛选用户帖子,因此我在视图中执行了以下操作: 观点:

在HTML中

books.author.id
books.author
books.total_books
它起作用了,它显示了总数,但没有打印作者用户名,而是打印了作者ID,而作者ID为空。 Django版本3.0.8

这是完整的HTML:

{% block content %}

<div class="container">   
        <div class="w-50">
            <table class="table">
                <thead class="thead-dark">
                    <tr>
                        <th scope="col">User ID</th>
                        <th scope="col">Username </th>
                        <th scope="col">Total Books</th>           
                    </tr>
                </thead>
             
            {% for books in books %}
                
                <tbody>
                    <tr>
                        <ul>
                        <td> {{ books.author }}</td>
                        <td> {{ books.author }} </td>
                        <td>{{ books.total_qcreports}}</td>
                        </ul>  
                    </tr>
                </tbody>

            {% endfor %}
            </table>           
        </div> 
    </div>

{% endblock content %}
以下是它在浏览器中的显示方式:

HTML模板

{{book.author}}
{{book.author__username}}
{{book.total_book}}
HTML模板

{{book.author}}
{{book.author__username}}
{{book.total_book}}

由于
books.author
显示了作者的用户名,我怀疑
author
是一个字符串而不是一个对象,它没有
id
列。请包括更多,比如说,你的
视图
?使用
Book.objects.values('author\uu username')。filter(date\u posted\uu year=2019)。annotation(total\u books=Count('author'))
我认为这个问题有点含糊不清,因为标题是“按年筛选帖子”但实际问题是,
books.author.id
没有出现@Rocio Zanbrabi Romo你能详细说明你的问题吗?请出示你的html模板你好,谢谢你的回复。我已经更新并包含了完整的HTML和模型。我想按年度筛选每个用户的图书总数。我尝试了suhailvs代码,但用户名仍然没有显示。因为
books.author
显示了作者的用户名,我怀疑
author
是一个字符串而不是一个对象,它没有
id
列。请包括更多,比如说,你的
视图
?使用
Book.objects.values('author\uu username')。filter(date\u posted\uu year=2019)。annotation(total\u books=Count('author'))
我认为这个问题有点含糊不清,因为标题是“按年筛选帖子”但实际问题是,
books.author.id
没有出现@Rocio Zanbrabi Romo你能详细说明你的问题吗?请出示你的html模板你好,谢谢你的回复。我已经更新并包含了完整的HTML和模型。我想按年度筛选每个用户的图书总数。我试过suhailvs代码,但用户名仍然不显示。好的,你试过我以前的答案了吗?这将适用于
alsoPruthvi Barot,您是对的,带有值的选项工作得更好!!好吧,你试过我之前的答案了?这将适用于
alsoPruthvi Barot,您是对的,带有值的选项工作得更好!!
context = {
        
        'books': Book.objects.values('author','author__username')
        .filter(date_posted__year=2019)
        .annotate(total_books = Count('author'))             
    }
{{book.author}}
{{book.author__username}}
{{book.total_book}}