서로 관련이있는 두 개의 모델이 있습니다. 고안된 예를 들어, 첫 번째는 사물의 목록이고 두 번째는 각 사물을 좋아하는 사람들의 목록입니다.이 레코드가 나와 관련이 있습니까?
나는 물건 목록을 보여주고 싶습니다. 그 중 하나가 마음에 드시면 옆에 아이콘을 보여주세요.
>>> thing.likes_set.filter(user=user)
을 내가 원하는 것을 얻을 수 있지만이를 놓아야 위에 나는 곳 코드에서 확실하지 않다 :
# 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>
나는 파이썬 쉘에서 나는이 작업을 수행 할 수 있다는 것을 발견했습니다. 나는 내 물건 모델에 메서드를 추가 한 경우 나, 내 템플릿에, 할 수있는 것을 조금 생각 :
{% if thing.liked_by_me %}
하지만 그 모델이 이름을 알 필요합니다. 또한 최고의 성능이 아닌 것처럼 보입니다.
제안 사항?
감사합니다. 나는 다음과 같은 코드로 끝났다 :'things_i_like = Likes.objects.filter (user = current_user) .values_list ('things__id', flat = False)'그런 다음 내 템플릿에서'thing.i in things_i_like'. 팁을 주셔서 감사 드리며 전에 values_list 기능을 사용한 적이 없습니다. – newz2000