当前位置: 首页>>代码示例>>Python>>正文


Python forms.generic_inlineformset_factory方法代码示例

本文整理汇总了Python中django.contrib.contenttypes.forms.generic_inlineformset_factory方法的典型用法代码示例。如果您正苦于以下问题:Python forms.generic_inlineformset_factory方法的具体用法?Python forms.generic_inlineformset_factory怎么用?Python forms.generic_inlineformset_factory使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在django.contrib.contenttypes.forms的用法示例。


在下文中一共展示了forms.generic_inlineformset_factory方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_save_new_uses_form_save

# 需要导入模块: from django.contrib.contenttypes import forms [as 别名]
# 或者: from django.contrib.contenttypes.forms import generic_inlineformset_factory [as 别名]
def test_save_new_uses_form_save(self):
        """
        Regression for #16260: save_new should call form.save()
        """
        class SaveTestForm(forms.ModelForm):
            def save(self, *args, **kwargs):
                self.instance.saved_by = "custom method"
                return super(SaveTestForm, self).save(*args, **kwargs)

        Formset = generic_inlineformset_factory(ForProxyModelModel, fields='__all__', form=SaveTestForm)

        instance = ProxyRelatedModel.objects.create()

        data = {
            'form-TOTAL_FORMS': '1',
            'form-INITIAL_FORMS': '0',
            'form-MAX_NUM_FORMS': '',
            'form-0-title': 'foo',
        }

        formset = Formset(data, instance=instance, prefix='form')
        self.assertTrue(formset.is_valid())
        new_obj = formset.save()[0]
        self.assertEqual(new_obj.saved_by, "custom method") 
开发者ID:denisenkom,项目名称:django-sqlserver,代码行数:26,代码来源:tests.py

示例2: test_save_new_for_proxy

# 需要导入模块: from django.contrib.contenttypes import forms [as 别名]
# 或者: from django.contrib.contenttypes.forms import generic_inlineformset_factory [as 别名]
def test_save_new_for_proxy(self):
        Formset = generic_inlineformset_factory(ForProxyModelModel, fields='__all__', for_concrete_model=False)

        instance = ProxyRelatedModel.objects.create()

        data = {
            'form-TOTAL_FORMS': '1',
            'form-INITIAL_FORMS': '0',
            'form-MAX_NUM_FORMS': '',
            'form-0-title': 'foo',
        }

        formset = Formset(data, instance=instance, prefix='form')
        self.assertTrue(formset.is_valid())

        new_obj, = formset.save()
        self.assertEqual(new_obj.obj, instance) 
开发者ID:denisenkom,项目名称:django-sqlserver,代码行数:19,代码来源:tests.py

示例3: test_save_new_for_concrete

# 需要导入模块: from django.contrib.contenttypes import forms [as 别名]
# 或者: from django.contrib.contenttypes.forms import generic_inlineformset_factory [as 别名]
def test_save_new_for_concrete(self):
        Formset = generic_inlineformset_factory(ForProxyModelModel, fields='__all__', for_concrete_model=True)

        instance = ProxyRelatedModel.objects.create()

        data = {
            'form-TOTAL_FORMS': '1',
            'form-INITIAL_FORMS': '0',
            'form-MAX_NUM_FORMS': '',
            'form-0-title': 'foo',
        }

        formset = Formset(data, instance=instance, prefix='form')
        self.assertTrue(formset.is_valid())

        new_obj, = formset.save()
        self.assertNotIsInstance(new_obj.obj, ProxyRelatedModel) 
开发者ID:denisenkom,项目名称:django-sqlserver,代码行数:19,代码来源:tests.py

示例4: test_save_new_uses_form_save

# 需要导入模块: from django.contrib.contenttypes import forms [as 别名]
# 或者: from django.contrib.contenttypes.forms import generic_inlineformset_factory [as 别名]
def test_save_new_uses_form_save(self):
        class SaveTestForm(forms.ModelForm):
            def save(self, *args, **kwargs):
                self.instance.saved_by = 'custom method'
                return super().save(*args, **kwargs)

        Formset = generic_inlineformset_factory(ForProxyModelModel, fields='__all__', form=SaveTestForm)
        instance = ProxyRelatedModel.objects.create()
        data = {
            'form-TOTAL_FORMS': '1',
            'form-INITIAL_FORMS': '0',
            'form-MAX_NUM_FORMS': '',
            'form-0-title': 'foo',
        }
        formset = Formset(data, instance=instance, prefix='form')
        self.assertTrue(formset.is_valid())
        new_obj = formset.save()[0]
        self.assertEqual(new_obj.saved_by, 'custom method') 
开发者ID:nesdis,项目名称:djongo,代码行数:20,代码来源:test_forms.py

示例5: test_save_as_new

# 需要导入模块: from django.contrib.contenttypes import forms [as 别名]
# 或者: from django.contrib.contenttypes.forms import generic_inlineformset_factory [as 别名]
def test_save_as_new(self):
        """
        The save_as_new parameter creates new items that are associated with
        the object.
        """
        lion = Animal.objects.create(common_name='Lion', latin_name='Panthera leo')
        yellow = lion.tags.create(tag='yellow')
        hairy = lion.tags.create(tag='hairy')
        GenericFormSet = generic_inlineformset_factory(TaggedItem)
        data = {
            'form-TOTAL_FORMS': '3',
            'form-INITIAL_FORMS': '2',
            'form-MAX_NUM_FORMS': '',
            'form-0-id': str(yellow.pk),
            'form-0-tag': 'hunts',
            'form-1-id': str(hairy.pk),
            'form-1-tag': 'roars',
        }
        formset = GenericFormSet(data, instance=lion, prefix='form', save_as_new=True)
        self.assertTrue(formset.is_valid())
        tags = formset.save()
        self.assertEqual([tag.tag for tag in tags], ['hunts', 'roars'])
        hunts, roars = tags
        self.assertSequenceEqual(lion.tags.order_by('tag'), [hairy, hunts, roars, yellow]) 
开发者ID:nesdis,项目名称:djongo,代码行数:26,代码来源:test_forms.py

示例6: get_formset

# 需要导入模块: from django.contrib.contenttypes import forms [as 别名]
# 或者: from django.contrib.contenttypes.forms import generic_inlineformset_factory [as 别名]
def get_formset(self, **kwargs):
        if self.exclude is None:
            exclude = []
        else:
            exclude = list(self.exclude)
        exclude.extend(self.get_readonly_fields())
        if self.exclude is None and hasattr(self.form, '_meta') and self.form._meta.exclude:
            # Take the custom ModelForm's Meta.exclude into account only if the
            # GenericInlineModelAdmin doesn't define its own.
            exclude.extend(self.form._meta.exclude)
        exclude = exclude or None
        can_delete = self.can_delete and self.has_delete_permission()
        defaults = {
            "ct_field": self.ct_field,
            "fk_field": self.ct_fk_field,
            "form": self.form,
            "formfield_callback": self.formfield_for_dbfield,
            "formset": self.formset,
            "extra": self.extra,
            "can_delete": can_delete,
            "can_order": False,
            "max_num": self.max_num,
            "exclude": exclude,
            'fields': forms.ALL_FIELDS
        }
        defaults.update(kwargs)

        return generic_inlineformset_factory(self.model, **defaults) 
开发者ID:stormsha,项目名称:StormOnline,代码行数:30,代码来源:inline.py

示例7: test_generic_inline_formsets_initial

# 需要导入模块: from django.contrib.contenttypes import forms [as 别名]
# 或者: from django.contrib.contenttypes.forms import generic_inlineformset_factory [as 别名]
def test_generic_inline_formsets_initial(self):
        """
        Test for #17927 Initial values support for BaseGenericInlineFormSet.
        """
        quartz = Mineral.objects.create(name="Quartz", hardness=7)

        GenericFormSet = generic_inlineformset_factory(TaggedItem, extra=1)
        ctype = ContentType.objects.get_for_model(quartz)
        initial_data = [{
            'tag': 'lizard',
            'content_type': ctype.pk,
            'object_id': quartz.pk,
        }]
        formset = GenericFormSet(initial=initial_data)
        self.assertEqual(formset.forms[0].initial, initial_data[0]) 
开发者ID:denisenkom,项目名称:django-sqlserver,代码行数:17,代码来源:tests.py

示例8: test_generic_inlineformset_factory

# 需要导入模块: from django.contrib.contenttypes import forms [as 别名]
# 或者: from django.contrib.contenttypes.forms import generic_inlineformset_factory [as 别名]
def test_generic_inlineformset_factory(self):
        """
        Regression for #14572: Using base forms with widgets
        defined in Meta should not raise errors.
        """
        Formset = generic_inlineformset_factory(TaggedItem, TaggedItemForm)
        form = Formset().forms[0]
        self.assertIsInstance(form['tag'].field.widget, CustomWidget) 
开发者ID:denisenkom,项目名称:django-sqlserver,代码行数:10,代码来源:tests.py

示例9: test_options

# 需要导入模块: from django.contrib.contenttypes import forms [as 别名]
# 或者: from django.contrib.contenttypes.forms import generic_inlineformset_factory [as 别名]
def test_options(self):
        TaggedItemFormSet = generic_inlineformset_factory(
            TaggedItem,
            can_delete=False,
            exclude=['tag'],
            extra=3,
        )
        platypus = Animal.objects.create(common_name='Platypus', latin_name='Ornithorhynchus anatinus')
        harmless = platypus.tags.create(tag='harmless')
        mammal = platypus.tags.create(tag='mammal')
        # Works without a queryset.
        formset = TaggedItemFormSet(instance=platypus)
        self.assertEqual(len(formset.forms), 5)
        self.assertHTMLEqual(
            formset.forms[0].as_p(),
            '<input type="hidden" name="generic_relations-taggeditem-content_type-object_id-0-id" value="%s" '
            'id="id_generic_relations-taggeditem-content_type-object_id-0-id">' % harmless.pk
        )
        self.assertEqual(formset.forms[0].instance, harmless)
        self.assertEqual(formset.forms[1].instance, mammal)
        self.assertIsNone(formset.forms[2].instance.pk)
        # A queryset can be used to alter display ordering.
        formset = TaggedItemFormSet(instance=platypus, queryset=TaggedItem.objects.order_by('-tag'))
        self.assertEqual(len(formset.forms), 5)
        self.assertEqual(formset.forms[0].instance, mammal)
        self.assertEqual(formset.forms[1].instance, harmless)
        self.assertIsNone(formset.forms[2].instance.pk)
        # A queryset that omits items.
        formset = TaggedItemFormSet(instance=platypus, queryset=TaggedItem.objects.filter(tag__startswith='harm'))
        self.assertEqual(len(formset.forms), 4)
        self.assertEqual(formset.forms[0].instance, harmless)
        self.assertIsNone(formset.forms[1].instance.pk) 
开发者ID:nesdis,项目名称:djongo,代码行数:34,代码来源:test_forms.py

示例10: test_get_queryset_ordering

# 需要导入模块: from django.contrib.contenttypes import forms [as 别名]
# 或者: from django.contrib.contenttypes.forms import generic_inlineformset_factory [as 别名]
def test_get_queryset_ordering(self):
        """
        BaseGenericInlineFormSet.get_queryset() adds default ordering, if
        needed.
        """
        inline_formset = generic_inlineformset_factory(TaggedItem, exclude=('tag',))
        formset = inline_formset(instance=Gecko.objects.create())
        self.assertIs(formset.get_queryset().ordered, True) 
开发者ID:nesdis,项目名称:djongo,代码行数:10,代码来源:test_forms.py

示例11: test_initial

# 需要导入模块: from django.contrib.contenttypes import forms [as 别名]
# 或者: from django.contrib.contenttypes.forms import generic_inlineformset_factory [as 别名]
def test_initial(self):
        quartz = Mineral.objects.create(name='Quartz', hardness=7)
        GenericFormSet = generic_inlineformset_factory(TaggedItem, extra=1)
        ctype = ContentType.objects.get_for_model(quartz)
        initial_data = [{
            'tag': 'lizard',
            'content_type': ctype.pk,
            'object_id': quartz.pk,
        }]
        formset = GenericFormSet(initial=initial_data)
        self.assertEqual(formset.forms[0].initial, initial_data[0]) 
开发者ID:nesdis,项目名称:djongo,代码行数:13,代码来源:test_forms.py

示例12: test_meta_widgets

# 需要导入模块: from django.contrib.contenttypes import forms [as 别名]
# 或者: from django.contrib.contenttypes.forms import generic_inlineformset_factory [as 别名]
def test_meta_widgets(self):
        """TaggedItemForm has a widget defined in Meta."""
        Formset = generic_inlineformset_factory(TaggedItem, TaggedItemForm)
        form = Formset().forms[0]
        self.assertIsInstance(form['tag'].field.widget, CustomWidget) 
开发者ID:nesdis,项目名称:djongo,代码行数:7,代码来源:test_forms.py

示例13: test_save_new_for_proxy

# 需要导入模块: from django.contrib.contenttypes import forms [as 别名]
# 或者: from django.contrib.contenttypes.forms import generic_inlineformset_factory [as 别名]
def test_save_new_for_proxy(self):
        Formset = generic_inlineformset_factory(ForProxyModelModel, fields='__all__', for_concrete_model=False)
        instance = ProxyRelatedModel.objects.create()
        data = {
            'form-TOTAL_FORMS': '1',
            'form-INITIAL_FORMS': '0',
            'form-MAX_NUM_FORMS': '',
            'form-0-title': 'foo',
        }
        formset = Formset(data, instance=instance, prefix='form')
        self.assertTrue(formset.is_valid())
        new_obj, = formset.save()
        self.assertEqual(new_obj.obj, instance) 
开发者ID:nesdis,项目名称:djongo,代码行数:15,代码来源:test_forms.py

示例14: test_save_new_for_concrete

# 需要导入模块: from django.contrib.contenttypes import forms [as 别名]
# 或者: from django.contrib.contenttypes.forms import generic_inlineformset_factory [as 别名]
def test_save_new_for_concrete(self):
        Formset = generic_inlineformset_factory(ForProxyModelModel, fields='__all__', for_concrete_model=True)
        instance = ProxyRelatedModel.objects.create()
        data = {
            'form-TOTAL_FORMS': '1',
            'form-INITIAL_FORMS': '0',
            'form-MAX_NUM_FORMS': '',
            'form-0-title': 'foo',
        }
        formset = Formset(data, instance=instance, prefix='form')
        self.assertTrue(formset.is_valid())
        new_obj, = formset.save()
        self.assertNotIsInstance(new_obj.obj, ProxyRelatedModel) 
开发者ID:nesdis,项目名称:djongo,代码行数:15,代码来源:test_forms.py

示例15: test_initial_count

# 需要导入模块: from django.contrib.contenttypes import forms [as 别名]
# 或者: from django.contrib.contenttypes.forms import generic_inlineformset_factory [as 别名]
def test_initial_count(self):
        GenericFormSet = generic_inlineformset_factory(TaggedItem)
        data = {
            'form-TOTAL_FORMS': '3',
            'form-INITIAL_FORMS': '3',
            'form-MAX_NUM_FORMS': '',
        }
        formset = GenericFormSet(data=data, prefix='form')
        self.assertEqual(formset.initial_form_count(), 3)
        formset = GenericFormSet(data=data, prefix='form', save_as_new=True)
        self.assertEqual(formset.initial_form_count(), 0) 
开发者ID:nesdis,项目名称:djongo,代码行数:13,代码来源:test_forms.py


注:本文中的django.contrib.contenttypes.forms.generic_inlineformset_factory方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。