2011-02-03 38 views
12

Tôi đang cố kiểm tra xem một mục có nằm trong danh sách (bộ) bên trong mẫu hay không.Django - kiểm tra xem danh sách có chứa nội dung nào đó trong một mẫu

tôi đã tìm thấy câu hỏi này ở đây: Is it possible, in a django template, to check if an object is contained in a list

tuy nhiên giải pháp không làm việc cho tôi.

Tôi đang cố gắng này:

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

nơi chuyến đi là một thể hiện của một chuyến đi, dùng là một tài khoản, chuyến đi có một ManyToManyField kết nối nó vào tài khoản, thông qua 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

Bạn đang sử dụng phiên bản Django nào? Điều đó sẽ hoạt động trong phiên bản mới nhất. – MattoTodd

+0

Tôi đang sử dụng Django 1.2. Tôi nghĩ đó là bởi vì đó là một queryset – JPC

Trả lời

1

request.user.trip_set.all không phải là danh sách mà là một bộ truy vấn. Tôi nghĩ rằng đó là lý do của vấn đề của bạn. Bạn có thể thử thay đổi nó thành một danh sách với bộ lọc mẫu dictsort.

{% if trip in request.user.trip_set.all|dictsort:"id" %} 
+0

Điều đó không hiệu quả. Tôi không nghĩ rằng dictsort là để chuyển đổi querysets vào danh sách. Có cách nào khác không? – JPC

Các vấn đề liên quan