ValueError对于精确查找的QuerySet值必须限制为使用Django视图切片的一个结果

密码

我收到此错误,我想不出一种解决方法,这里是views.py

class SellerTransactionListView(ListView):
    model = Transaction
    template_name = "sellers/transaction_list_view.html"

    def get_queryset(self):
        account = SellerAccount.objects.filter(user=self.request.user)
        if account.exists():
            products = Product.objects.filter(seller=account)
            return Transaction.objects.filter(product__in=products)
        return []

模板transaction_list_view.html

{% extends "base.html" %}

{% block content %}
<h1>Transactions</h1>
<ul>

    {% include "sellers/transaction_list.html" with transaction_list=object_list %}

</ul>
{% endblock %}

和transaction_list.html

<table>
<thead>
<th>Product</th>
<th>User</th>
<th>order_id</th>
<th>Sale Total</th>
    <th></th>
</thead>
<tbody>
{% for trans in transaction_list %}
<tr>
    <td>{{ trans.product }}</td>
    <td>{{ trans.profile }}</td>
  <td>{{ trans.order_id }}</td>
    <td>{{ trans.amount }}</td>
    <td>{{ trans.timestamp|timesince }} ago</td>
</tr>
{% endfor %}
</tbody>
</table>

如果我将transaction_list_view.html包含部分更改为

{%包含“ sellers / transaction_list.html”和transaction_list = transactions%}

错误消失,但交易未显示。

威廉·范昂塞姆

accounts是QuerySet,这意味着它是一个包含零,一个或多个集合SellerAccountS,所以你应该使用:

products = Product.objects.filter(seller__in=account)

因此使用__in查找[Django-doc]

话虽如此,您可以通过将其编写为以下命令来使上述查询更有效:

    def get_queryset(self):
        return Transaction.objects.filter(product__seller__user=self.request.user)

因此,您将在此处返回Transaction具有的的productseller其的拥有userself.request.user

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Django:精确查找的 QuerySet 值必须使用切片限制为一个结果

精确查找的QuerySet值必须使用切片限制为一个结果

错误:精确查找的 QuerySet 值必须使用切片限制为一个结果

Django objects.get():用于精确查找的QuerySet值必须使用切片限制为一个结果

Django 信号:精确查找的 QuerySet 值必须使用切片限制为一个结果

Django错误:必须使用切片将精确查找的QuerySet值限制为一个结果?

django错误,“用于精确查找的QuerySet值必须限制为使用切片的一个结果”

如何让用户关联到另一个模型 DRF。ValueError:精确查找的 QuerySet 值必须使用切片限制为一个结果

需要帮助解决错误“精确查找的 QuerySet 值必须限制为使用切片的一个结果”

必须使用切片将精确查找的QuerySet值限制为一个结果。过滤错误

如何解决“用于精确查找的QuerySet值必须限制为使用切片的一个结果。” Django中的错误

如何获得解决此错误的信息“精确查找的QuerySet值必须限制为使用切片的一个结果。”

我如何解决精确查找的 QuerySet 值必须限制为使用切片的一个结果。姜戈

精确查询的QuerySet值必须使用slicing-Django限制为一个结果

在不使用切片的情况下,限制了Django QuerySet的结果数量

将查找请求限制为一个结果

django-在结果受限制的queryset上切片/过滤后过滤

获取一个zarr数组切片的视图

相对于go中的另一个切片对切片进行排序

Django QuerySet切片返回意外结果

numpy:尝试在数组的一个切片的一个切片上设置值

使用一个新值更改列表切片的值

使用iloc时,“试图从DataFrame的切片副本上设置一个值”错误

如何使用 tf.gather 从第一个轴切片值?

append 的第一个参数必须是切片;有无类型 nil

切片索引必须有一个 __index__ 方法

基于另一个切片器选择的 Power BI 切片器的初始值

如何在Django表单的queryset上使用切片?

如何使用另一个切片作为分隔符来分割切片?