Python 如何在Django模板中使用objects.filter(user=request.user)?

Python 如何在Django模板中使用objects.filter(user=request.user)?,python,django,python-3.x,Python,Django,Python 3.x,我使用了PurchaseInfo.objects.filter(user=request.user).values()并希望在模板中显示结果。但是,我收到以下错误消息: FieldError at /auth/purchaseHistory/ Cannot resolve keyword 'user' into field. Choices are: id, product_name, product_price, purchase_addr, purchase_date, purchase

我使用了
PurchaseInfo.objects.filter(user=request.user).values()
并希望在模板中显示结果。但是,我收到以下错误消息:

FieldError at /auth/purchaseHistory/


Cannot resolve keyword 'user' into field. Choices are: id, product_name, product_price, purchase_addr, purchase_date, purchase_id, purchase_id_id, purchase_name, purchase_phone
purchaseinfo/models.py

class PurchaseInfo(models.Model):
    purchase_id = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    purchase_name = models.CharField(max_length=30)
    purchase_addr = models.CharField(max_length=100)
    purchase_phone = models.CharField(max_length=15)
    ...and so on
from purchaseinfo.models import PurchaseInfo
def purchaseHistory(request):
    history = PurchaseInfo.objects.filter(user=request.user).values()
    return render(request,'customlogin/purchaseHistory.html',{'history':history})
customlogin/views.py

class PurchaseInfo(models.Model):
    purchase_id = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    purchase_name = models.CharField(max_length=30)
    purchase_addr = models.CharField(max_length=100)
    purchase_phone = models.CharField(max_length=15)
    ...and so on
from purchaseinfo.models import PurchaseInfo
def purchaseHistory(request):
    history = PurchaseInfo.objects.filter(user=request.user).values()
    return render(request,'customlogin/purchaseHistory.html',{'history':history})
purchaseHistory.html

{% for i in history %}
<tr>
    <td>{{i.purchase_id}}</td>
    <td>{{i.purchase_name}}</td>
    <td>{{i.purchase_addr}}</td>
    <td>{{i.purchase_phone}}</td>
    <td>{{i.product_name}}</td>
    <td>{{i.product_price}}</td>
    <td>{{i.purchase_date}}</td>
</tr>
{% endfor %}
{history%%中的i的%
{{i.purchase_id}
{{i.purchase_name}
{{i.purchase_addr}}
{{i.purchase_phone}
{{i.product_name}
{{i.产品价格}
{{i.购买日期}
{%endfor%}

如何解决此问题?

将您的视图更新为:

history = PurchaseInfo.objects.filter(purchase_id=request.user).values()
在您的模型中,与用户模型的外键关系是
purchase\u id
,但在视图中,您试图按
User
进行筛选。您需要按
购买\u id
进行筛选

大多数情况下,错误消息都能很好地解释问题,请尝试理解它所说的内容,并尝试自己修复它。调试是一项很好的技能。

您的模型中似乎没有用户字段,请编写完整的模型代码您可以删除value()函数。在这里没有必要。此外,命名外键字段(如product_id)也不是一个好做法。你可以把它命名为用户。此外,由于您的模型名为productInfo,您不必以pruchase开始所有字段名。我没有太多制作模型的经验。所以我有很多错误。谢谢你的评论收件人:阿曼·库马尔,拉齐·巴贝1号