我正在使用 Django 創建一個 Car Shop Web 應用程式。這是我的索引視圖:
def index(request):
cars = Car.objects.filter(brand=request.user.preferred_brand)
return TemplateResponse(request, "main/home.html", {"cars": cars})
這顯示了當前經過身份驗證的用戶為其設定了首選項的所有汽車的串列。
在我的資料庫中,我還有以下模型:
class Interest(models.Model):
repair_company_name = models.CharField(max_length=200)
car_id = models.IntegerField()
每輛車都有一組愿意為特定汽車提供維修支持的公司。我也想在用戶的主頁上顯示此資訊 - 這樣他不僅會看到他喜歡的汽車的串列,而且每輛車旁邊也會有關于維修公司的資訊。
我的問題來了 - 如何將如此復雜的型別傳遞到 django 模板中,因為我無法在那里進行諸如索引之類的復雜操作。我可以想象創建包含這些資訊分組的字典之類的東西(這樣每個字典將包含有關汽車的所有內容以及屬于它的所有維修公司的名稱字串串列)。但是如何從模板訪問這樣的字典及其值呢?有沒有更好的方法來做到這一點?
uj5u.com熱心網友回復:
您可以像這樣訪問模板中的復雜字典:
{{data.0}} // same as 'data[0]'
{{data.user_info}} // same as 'data["user_info"]'
// And you can chain these like this
{{data.0.user_info.id}}
uj5u.com熱心網友回復:
它并不像您想象的那么復雜,沒有關于您的模型的足夠資訊,但是您可以通過以下方式滿足此要求:
在興趣模型中,您需要將“car_id”欄位更改為 Car 模型的外鍵,因此興趣模型將是:
class Interest(models.Model):
repair_company_name = models.CharField(max_length=200)
car_id = models.ForeignKey(Car, on_delete=models.CASCADE, related_name="interest")
因此,您可以通過這種方式獲得感興趣的維修店串列:
from django.shortcuts import get_list_or_404
cars = get_list_or_404(Car, brand=request.user.preferred_brand) # assume that user can have many preferred brands
for each car in cars:
car.inetrest.all()
關于在 html 頁面中顯示它們,您可以使用Listviews類或做嵌套串列,使用 Listviewes 并不復雜,您只需要以這種方式設定查詢集:
qs = inetrest.objects.filter(car_id=request.user.preferred_brand)
當然,這是高層次的解釋,需要從你的角度進行一些調整
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/343303.html
