ForeignKey readonly fields render as links if the target model is registered in admin.
(self, admin_site)
| 7743 | ) |
| 7744 | |
| 7745 | def _test_readonly_foreignkey_links(self, admin_site): |
| 7746 | """ |
| 7747 | ForeignKey readonly fields render as links if the target model is |
| 7748 | registered in admin. |
| 7749 | """ |
| 7750 | chapter = Chapter.objects.create( |
| 7751 | title="Chapter 1", |
| 7752 | content="content", |
| 7753 | book=Book.objects.create(name="Book 1"), |
| 7754 | ) |
| 7755 | language = Language.objects.create(iso="_40", name="Test") |
| 7756 | obj = ReadOnlyRelatedField.objects.create( |
| 7757 | chapter=chapter, |
| 7758 | language=language, |
| 7759 | user=self.superuser, |
| 7760 | ) |
| 7761 | response = self.client.get( |
| 7762 | reverse( |
| 7763 | f"{admin_site}:admin_views_readonlyrelatedfield_change", args=(obj.pk,) |
| 7764 | ), |
| 7765 | ) |
| 7766 | # Related ForeignKey object registered in admin. |
| 7767 | user_url = reverse(f"{admin_site}:auth_user_change", args=(self.superuser.pk,)) |
| 7768 | self.assertContains( |
| 7769 | response, |
| 7770 | '<div class="readonly"><a href="%s">super</a></div>' % user_url, |
| 7771 | html=True, |
| 7772 | ) |
| 7773 | # Related ForeignKey with the string primary key registered in admin. |
| 7774 | language_url = reverse( |
| 7775 | f"{admin_site}:admin_views_language_change", |
| 7776 | args=(quote(language.pk),), |
| 7777 | ) |
| 7778 | self.assertContains( |
| 7779 | response, |
| 7780 | '<div class="readonly"><a href="%s">_40</a></div>' % language_url, |
| 7781 | html=True, |
| 7782 | ) |
| 7783 | # Related ForeignKey object not registered in admin. |
| 7784 | self.assertContains( |
| 7785 | response, '<div class="readonly">Chapter 1</div>', html=True |
| 7786 | ) |
| 7787 | |
| 7788 | def test_readonly_foreignkey_links_default_admin_site(self): |
| 7789 | self._test_readonly_foreignkey_links("admin") |
no test coverage detected