2011-02-03 151 views
12

我試圖檢查某個項目是否位於模板內的列表(集合)中。Django - 檢查列表是否包含模板中的內容

我發現這個問題在這裏: Is it possible, in a django template, to check if an object is contained in a list

然而,該解決方案是不是爲我工作。

我想這一點:

{% if trip in request.user.trip_set.all %} 

其中一趟是旅行的一個實例, 用戶是用戶, 旅行有它連接到用戶,通過TripReservation

class TripReservation(models.Model): 
    user = models.ForeignKey(User) 
    trip = models.ForeignKey(Trip) 

class Trip(models.Model): 
    members = models.ManyToManyField(User,blank=True,null=True,through='TripReservation') 
+0

你使用的是什麼版本的Django?這應該在最新版本中起作用。 – MattoTodd 2011-02-03 03:11:43

+0

我正在使用Django 1.2。我認爲這是因爲這是一個查詢集 – JPC 2011-02-03 18:12:44

回答

1
一個ManyToManyField

request.user.trip_set.all不是一個列表,而是一個查詢集。我認爲這是你的問題的原因。您可以嘗試使用dictsort模板過濾器將其更改爲列表。

{% if trip in request.user.trip_set.all|dictsort:"id" %} 
相關問題