0
我有兩個相互關聯的模型。對於一個人爲的例子,第一個是一個事物列表,第二個是喜歡每個事物的人列表。這個記錄與我有關嗎?
我想顯示一個事物列表,如果我喜歡其中一個,然後在旁邊顯示一個圖標。
# in the models
class Things(models.Model):
name = models.CharField(max_length = 100)
class Likes(models.Model):
user = models.ForeignKey(User)
thing = models.ForeignKey(Thing)
# in the view
@login_required
def list_of_things(request):
things = things.objects.all()
context = RequestContext(request, {'things': things})
return render_to_response('thinglist.html', context)
# in the template
{% for thing in things %}
<li>{{ thing.name }}
## PSUEDO CODE HERE
{% if I've liked this thing %}
<img src="like.png">
{% endif %}
</li>
我發現,在Python Shell中我可以這樣做:
>>> thing.likes_set.filter(user=user)
得到我想要的東西,但我不知道在哪裏,上面的代碼我應該把這個。我想了一會兒,如果我添加了一個方法,我的東西模型,我可以在我的模板,這樣做:
{% if thing.liked_by_me %}
但這需要模型知道用戶名。此外,它似乎不會是最好的表現。
有什麼建議嗎?
謝謝,這照顧了它。我結束了這樣的代碼:'something_i_like = Likes.objects.filter(user = current_user).values_list('things__id',flat = False)'然後在我的模板中'如果thing.id in things_i_like'。我欣賞這個提示,從未使用過之前的values_list功能。 – newz2000 2011-06-11 23:08:15