[英]Django: How to filter ForeignKey choices by request.user with ModelFormSet
[英]How to use objects.filter(user=request.user) in Django templates?
我使用了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
customlogin / views.py
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 = PurchaseInfo.objects.filter(purchase_id=request.user).values()
在您的模型中,用戶模型的外鍵關系是purchase_id
但在視圖中,您嘗試按user
進行過濾。 您需要按purchase_id
過濾。
大多數情況下,錯誤消息很好地解釋了問題,嘗試理解它所說的內容並嘗試自行修復它。 調試是一項很好的技能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.