У меня есть следующие отношения модели:
class CustomEmail(models.Model):
template = models.ForeignKey(SystemEmail, on_delete=models.CASCADE)
В ListView
я отображаю SystemEmail
объекты, полученные:
def get_queryset(self):
prefetch = Prefetch('customemail_set',
queryset=CustomEmail.objects.filter(client=self.request.user.client),
to_attr='custom_email')
return (SystemEmail.objects.filter(user_editable=True)
.order_by('template_name').prefetch_related(prefetch))
Теперь в моем шаблонеЯ пытаюсь получить доступ к pk
из связанных CustomEmail
через to_att
следующим образом:
{% for email in system_emails %}
{% if email.custom_email %}
<li><a href="{% url 'settings:edit_custom_email' email.custom_email.pk %}">Edit</a></li>
{% endif %}
{% endfor %}
Часть, в которую я звоню email.custom_email.pk
, ничего не перезапускает.Как я могу (если это вообще возможно) получить pk
, используя to_attr
из соответствующего CustomEmail
?
EDIT
Я не упомянул, чтов моем приложении у меня будет только один CustomEmail
для каждого SystemEmail
для каждого клиента (см. Prefetch
queryset)