私は、これがDjangoにとって初めてのことで、100%どのように機能するかではありません。グループに属するすべての連絡先first_nameを一覧表示したいと思います。これを達成するためにselect_relatedを使用するように言われたので、DBに2回ヒットするのを防ぐために、グループをロードするだけです。以下は私が試したものです。誰かが私が間違っていることを説明できますか?ありがとうございました。
model.py
class Group(models.Model):
name = models.CharField(max_length=60)
user = models.ForeignKey(User, related_name="user")
class Contact(models.Model):
first_name = models.CharField(max_length=60)
group = models.ForeignKey(Group)
mview.pyの一部
if id:
# If we have an id try and get it and populate instance.
group = get_object_or_404(Group.objects.select_related(), pk=id)
show_upload = True
# If we have an instance check that it belongs to the login.
if group.user != request.user:
return HttpResponseForbidden()
連絡先first_nameをリストしようとしているテンプレートの部分
{% for item in group.contact %}
<tr>
{{ item.first_name }}
</tr>
{% endfor %}