(self)
| 133 | ) |
| 134 | |
| 135 | def test_options(self): |
| 136 | TaggedItemFormSet = generic_inlineformset_factory( |
| 137 | TaggedItem, |
| 138 | can_delete=False, |
| 139 | exclude=["tag"], |
| 140 | extra=3, |
| 141 | ) |
| 142 | platypus = Animal.objects.create( |
| 143 | common_name="Platypus", latin_name="Ornithorhynchus anatinus" |
| 144 | ) |
| 145 | harmless = platypus.tags.create(tag="harmless") |
| 146 | mammal = platypus.tags.create(tag="mammal") |
| 147 | # Works without a queryset. |
| 148 | formset = TaggedItemFormSet(instance=platypus) |
| 149 | self.assertEqual(len(formset.forms), 5) |
| 150 | self.assertHTMLEqual( |
| 151 | formset.forms[0].as_p(), |
| 152 | '<input type="hidden" ' |
| 153 | 'name="generic_relations-taggeditem-content_type-object_id-0-id" ' |
| 154 | 'value="%s" ' |
| 155 | 'id="id_generic_relations-taggeditem-content_type-object_id-0-id">' |
| 156 | % harmless.pk, |
| 157 | ) |
| 158 | self.assertEqual(formset.forms[0].instance, harmless) |
| 159 | self.assertEqual(formset.forms[1].instance, mammal) |
| 160 | self.assertIsNone(formset.forms[2].instance.pk) |
| 161 | # A queryset can be used to alter display ordering. |
| 162 | formset = TaggedItemFormSet( |
| 163 | instance=platypus, queryset=TaggedItem.objects.order_by("-tag") |
| 164 | ) |
| 165 | self.assertEqual(len(formset.forms), 5) |
| 166 | self.assertEqual(formset.forms[0].instance, mammal) |
| 167 | self.assertEqual(formset.forms[1].instance, harmless) |
| 168 | self.assertIsNone(formset.forms[2].instance.pk) |
| 169 | # A queryset that omits items. |
| 170 | formset = TaggedItemFormSet( |
| 171 | instance=platypus, |
| 172 | queryset=TaggedItem.objects.filter(tag__startswith="harm"), |
| 173 | ) |
| 174 | self.assertEqual(len(formset.forms), 4) |
| 175 | self.assertEqual(formset.forms[0].instance, harmless) |
| 176 | self.assertIsNone(formset.forms[1].instance.pk) |
| 177 | |
| 178 | def test_get_queryset_ordering(self): |
| 179 | """ |
nothing calls this directly
no test coverage detected