私はお互いに関連した2つのモデルを持っています。人為的な例では、最初のものは物のリストであり、2番目の物はそれぞれの物が好きな人のリストです。このレコードは私に関連していますか?
私は物事のリストを表示したいと思います。私がそれらの1つが好きだったら、その隣にアイコンを表示したいと思います。
>>> 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>
私はPythonシェルで、私はこれを行うことができますことを発見しました。私は物事モデルにメソッドを追加した場合、私は、私のテンプレートで、行うことができるとビットのために考えた:
{% if thing.liked_by_me %}
しかし、それは、モデルがユーザー名を知っている必要になります。また、それは最高のパフォーマンスではないようです。
提案がありますか?
おかげで、これはそれの世話をしました。私はこのようなコードで終わった: 'things_i_like = Likes.objects.filter(user = current_user).values_list( 'things__id'、flat = False)'次に、テンプレートの 'thing_id in things_i_like'。私はヒントをありがとう、以前はvalues_list機能を使用したことがありません。 – newz2000