python类formset_factory()的实例源码

models.py 文件源码 项目:tissuelab 作者: VirtualPlants 项目源码 文件源码 阅读 16 收藏 0 点赞 0 评论 0
def modelformset_factory(model, form=ModelForm, formfield_callback=None,
                         formset=BaseModelFormSet, extra=1, can_delete=False,
                         can_order=False, max_num=None, fields=None, exclude=None,
                         widgets=None, validate_max=False, localized_fields=None,
                         labels=None, help_texts=None, error_messages=None):
    """
    Returns a FormSet class for the given Django model class.
    """
    # modelform_factory will produce the same warning/error, but that will be
    # difficult to debug for code that needs upgrading, so we produce the
    # warning here too. This logic is reproducing logic inside
    # modelform_factory, but it can be removed once the deprecation cycle is
    # complete, since the validation exception will produce a helpful
    # stacktrace.
    meta = getattr(form, 'Meta', None)
    if meta is None:
        meta = type(str('Meta'), (object,), {})
    if (getattr(meta, 'fields', fields) is None and
        getattr(meta, 'exclude', exclude) is None):
        warnings.warn("Calling modelformset_factory without defining 'fields' or "
                      "'exclude' explicitly is deprecated",
                      PendingDeprecationWarning, stacklevel=2)

    form = modelform_factory(model, form=form, fields=fields, exclude=exclude,
                             formfield_callback=formfield_callback,
                             widgets=widgets, localized_fields=localized_fields,
                             labels=labels, help_texts=help_texts, error_messages=error_messages)
    FormSet = formset_factory(form, formset, extra=extra, max_num=max_num,
                              can_order=can_order, can_delete=can_delete,
                              validate_max=validate_max)
    FormSet.model = model
    return FormSet


# InlineFormSets #############################################################
tests.py 文件源码 项目:django-learning 作者: adoggie 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def test_for_formset(self):
        TestFormSet = formset_factory(TestForm, extra=1)
        test_formset = TestFormSet()
        res = render_template_with_form(
            '{% bootstrap_formset formset show_label=False %}',
            {'formset': test_formset}
        )
        self.assertIn('sr-only', res)
models.py 文件源码 项目:producthunt 作者: davidgengler 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def modelformset_factory(model, form=ModelForm, formfield_callback=None,
                         formset=BaseModelFormSet, extra=1, can_delete=False,
                         can_order=False, max_num=None, fields=None, exclude=None,
                         widgets=None, validate_max=False, localized_fields=None,
                         labels=None, help_texts=None, error_messages=None,
                         min_num=None, validate_min=False, field_classes=None):
    """
    Returns a FormSet class for the given Django model class.
    """
    meta = getattr(form, 'Meta', None)
    if (getattr(meta, 'fields', fields) is None and
            getattr(meta, 'exclude', exclude) is None):
        raise ImproperlyConfigured(
            "Calling modelformset_factory without defining 'fields' or "
            "'exclude' explicitly is prohibited."
        )

    form = modelform_factory(model, form=form, fields=fields, exclude=exclude,
                             formfield_callback=formfield_callback,
                             widgets=widgets, localized_fields=localized_fields,
                             labels=labels, help_texts=help_texts,
                             error_messages=error_messages, field_classes=field_classes)
    FormSet = formset_factory(form, formset, extra=extra, min_num=min_num, max_num=max_num,
                              can_order=can_order, can_delete=can_delete,
                              validate_min=validate_min, validate_max=validate_max)
    FormSet.model = model
    return FormSet


# InlineFormSets #############################################################
models.py 文件源码 项目:django-rtc 作者: scifiswapnil 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def modelformset_factory(model, form=ModelForm, formfield_callback=None,
                         formset=BaseModelFormSet, extra=1, can_delete=False,
                         can_order=False, max_num=None, fields=None, exclude=None,
                         widgets=None, validate_max=False, localized_fields=None,
                         labels=None, help_texts=None, error_messages=None,
                         min_num=None, validate_min=False, field_classes=None):
    """
    Returns a FormSet class for the given Django model class.
    """
    meta = getattr(form, 'Meta', None)
    if (getattr(meta, 'fields', fields) is None and
            getattr(meta, 'exclude', exclude) is None):
        raise ImproperlyConfigured(
            "Calling modelformset_factory without defining 'fields' or "
            "'exclude' explicitly is prohibited."
        )

    form = modelform_factory(model, form=form, fields=fields, exclude=exclude,
                             formfield_callback=formfield_callback,
                             widgets=widgets, localized_fields=localized_fields,
                             labels=labels, help_texts=help_texts,
                             error_messages=error_messages, field_classes=field_classes)
    FormSet = formset_factory(form, formset, extra=extra, min_num=min_num, max_num=max_num,
                              can_order=can_order, can_delete=can_delete,
                              validate_min=validate_min, validate_max=validate_max)
    FormSet.model = model
    return FormSet


# InlineFormSets #############################################################
models.py 文件源码 项目:geekpoint 作者: Lujinghu 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def modelformset_factory(model, form=ModelForm, formfield_callback=None,
                         formset=BaseModelFormSet, extra=1, can_delete=False,
                         can_order=False, max_num=None, fields=None, exclude=None,
                         widgets=None, validate_max=False, localized_fields=None,
                         labels=None, help_texts=None, error_messages=None,
                         min_num=None, validate_min=False):
    """
    Returns a FormSet class for the given Django model class.
    """
    meta = getattr(form, 'Meta', None)
    if meta is None:
        meta = type(str('Meta'), (object,), {})
    if (getattr(meta, 'fields', fields) is None and
            getattr(meta, 'exclude', exclude) is None):
        raise ImproperlyConfigured(
            "Calling modelformset_factory without defining 'fields' or "
            "'exclude' explicitly is prohibited."
        )

    form = modelform_factory(model, form=form, fields=fields, exclude=exclude,
                             formfield_callback=formfield_callback,
                             widgets=widgets, localized_fields=localized_fields,
                             labels=labels, help_texts=help_texts, error_messages=error_messages)
    FormSet = formset_factory(form, formset, extra=extra, min_num=min_num, max_num=max_num,
                              can_order=can_order, can_delete=can_delete,
                              validate_min=validate_min, validate_max=validate_max)
    FormSet.model = model
    return FormSet


# InlineFormSets #############################################################
models.py 文件源码 项目:django-next-train 作者: bitpixdigital 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def modelformset_factory(model, form=ModelForm, formfield_callback=None,
                         formset=BaseModelFormSet, extra=1, can_delete=False,
                         can_order=False, max_num=None, fields=None, exclude=None,
                         widgets=None, validate_max=False, localized_fields=None,
                         labels=None, help_texts=None, error_messages=None,
                         min_num=None, validate_min=False, field_classes=None):
    """
    Returns a FormSet class for the given Django model class.
    """
    meta = getattr(form, 'Meta', None)
    if meta is None:
        meta = type(str('Meta'), (object,), {})
    if (getattr(meta, 'fields', fields) is None and
            getattr(meta, 'exclude', exclude) is None):
        raise ImproperlyConfigured(
            "Calling modelformset_factory without defining 'fields' or "
            "'exclude' explicitly is prohibited."
        )

    form = modelform_factory(model, form=form, fields=fields, exclude=exclude,
                             formfield_callback=formfield_callback,
                             widgets=widgets, localized_fields=localized_fields,
                             labels=labels, help_texts=help_texts,
                             error_messages=error_messages, field_classes=field_classes)
    FormSet = formset_factory(form, formset, extra=extra, min_num=min_num, max_num=max_num,
                              can_order=can_order, can_delete=can_delete,
                              validate_min=validate_min, validate_max=validate_max)
    FormSet.model = model
    return FormSet


# InlineFormSets #############################################################
models.py 文件源码 项目:LatinSounds_AppEnviaMail 作者: G3ek-aR 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def modelformset_factory(model, form=ModelForm, formfield_callback=None,
                         formset=BaseModelFormSet, extra=1, can_delete=False,
                         can_order=False, max_num=None, fields=None, exclude=None,
                         widgets=None, validate_max=False, localized_fields=None,
                         labels=None, help_texts=None, error_messages=None,
                         min_num=None, validate_min=False, field_classes=None):
    """
    Returns a FormSet class for the given Django model class.
    """
    meta = getattr(form, 'Meta', None)
    if (getattr(meta, 'fields', fields) is None and
            getattr(meta, 'exclude', exclude) is None):
        raise ImproperlyConfigured(
            "Calling modelformset_factory without defining 'fields' or "
            "'exclude' explicitly is prohibited."
        )

    form = modelform_factory(model, form=form, fields=fields, exclude=exclude,
                             formfield_callback=formfield_callback,
                             widgets=widgets, localized_fields=localized_fields,
                             labels=labels, help_texts=help_texts,
                             error_messages=error_messages, field_classes=field_classes)
    FormSet = formset_factory(form, formset, extra=extra, min_num=min_num, max_num=max_num,
                              can_order=can_order, can_delete=can_delete,
                              validate_min=validate_min, validate_max=validate_max)
    FormSet.model = model
    return FormSet


# InlineFormSets #############################################################
models.py 文件源码 项目:DjangoZeroToHero 作者: RayParra 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def modelformset_factory(model, form=ModelForm, formfield_callback=None,
                         formset=BaseModelFormSet, extra=1, can_delete=False,
                         can_order=False, max_num=None, fields=None, exclude=None,
                         widgets=None, validate_max=False, localized_fields=None,
                         labels=None, help_texts=None, error_messages=None,
                         min_num=None, validate_min=False, field_classes=None):
    """
    Returns a FormSet class for the given Django model class.
    """
    meta = getattr(form, 'Meta', None)
    if meta is None:
        meta = type(str('Meta'), (object,), {})
    if (getattr(meta, 'fields', fields) is None and
            getattr(meta, 'exclude', exclude) is None):
        raise ImproperlyConfigured(
            "Calling modelformset_factory without defining 'fields' or "
            "'exclude' explicitly is prohibited."
        )

    form = modelform_factory(model, form=form, fields=fields, exclude=exclude,
                             formfield_callback=formfield_callback,
                             widgets=widgets, localized_fields=localized_fields,
                             labels=labels, help_texts=help_texts,
                             error_messages=error_messages, field_classes=field_classes)
    FormSet = formset_factory(form, formset, extra=extra, min_num=min_num, max_num=max_num,
                              can_order=can_order, can_delete=can_delete,
                              validate_min=validate_min, validate_max=validate_max)
    FormSet.model = model
    return FormSet


# InlineFormSets #############################################################
tests.py 文件源码 项目:django-propeller 作者: tfroehlich82 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def test_for_formset(self):
        TestFormSet = formset_factory(TestForm, extra=1)
        test_formset = TestFormSet()
        res = self.render_template_with_form(
            '{% propeller_formset formset show_label=False %}',
            {'formset': test_formset}
        )
        self.assertIn('sr-only', res)
models.py 文件源码 项目:Roboism 作者: markroxor 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def modelformset_factory(model, form=ModelForm, formfield_callback=None,
                         formset=BaseModelFormSet, extra=1, can_delete=False,
                         can_order=False, max_num=None, fields=None, exclude=None,
                         widgets=None, validate_max=False, localized_fields=None,
                         labels=None, help_texts=None, error_messages=None,
                         min_num=None, validate_min=False, field_classes=None):
    """
    Returns a FormSet class for the given Django model class.
    """
    meta = getattr(form, 'Meta', None)
    if meta is None:
        meta = type(str('Meta'), (object,), {})
    if (getattr(meta, 'fields', fields) is None and
            getattr(meta, 'exclude', exclude) is None):
        raise ImproperlyConfigured(
            "Calling modelformset_factory without defining 'fields' or "
            "'exclude' explicitly is prohibited."
        )

    form = modelform_factory(model, form=form, fields=fields, exclude=exclude,
                             formfield_callback=formfield_callback,
                             widgets=widgets, localized_fields=localized_fields,
                             labels=labels, help_texts=help_texts,
                             error_messages=error_messages, field_classes=field_classes)
    FormSet = formset_factory(form, formset, extra=extra, min_num=min_num, max_num=max_num,
                              can_order=can_order, can_delete=can_delete,
                              validate_min=validate_min, validate_max=validate_max)
    FormSet.model = model
    return FormSet


# InlineFormSets #############################################################
tests.py 文件源码 项目:SSBW 作者: AythaE 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def test_for_formset(self):
        TestFormSet = formset_factory(TestForm, extra=1)
        test_formset = TestFormSet()
        res = render_template_with_form(
            '{% bootstrap_formset formset show_label=False %}',
            {'formset': test_formset}
        )
        self.assertIn('sr-only', res)
    # TODO change for the new icons
    # def test_button_with_icon(self):
    #     res = render_template_with_form(
    #         "{% bootstrap_button 'test' icon='info-sign' %}"
    #     )
    #     self.assertEqual(
    #         res.strip(),
    #         '<button class="btn btn-default"><span class="glyphicon glyphicon-info-sign"></span> test</button>'
    #     )
    #     res = render_template_with_form(
    #         "{% bootstrap_button 'test' icon='info-sign' button_class='btn-primary' %}"
    #     )
    #     self.assertEqual(
    #         res.strip(),
    #         '<button class="btn btn-primary"><span class="glyphicon glyphicon-info-sign"></span> test</button>'
    #     )
    #     res = render_template_with_form(
    #         "{% bootstrap_button 'test' icon='info-sign' button_type='submit' %}"
    #     )
    #     self.assertEqual(
    #         res.strip(),
    #         '<button class="btn btn-default" type="submit"><span class="glyphicon glyphicon-info-sign"></span> test</button>'
tests.py 文件源码 项目:SSBW 作者: AythaE 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def test_for_formset(self):
        TestFormSet = formset_factory(TestForm, extra=1)
        test_formset = TestFormSet()
        res = render_template_with_form(
            '{% bootstrap_formset formset show_label=False %}',
            {'formset': test_formset}
        )
        self.assertIn('sr-only', res)
    # TODO change for the new icons
    # def test_button_with_icon(self):
    #     res = render_template_with_form(
    #         "{% bootstrap_button 'test' icon='info-sign' %}"
    #     )
    #     self.assertEqual(
    #         res.strip(),
    #         '<button class="btn btn-default"><span class="glyphicon glyphicon-info-sign"></span> test</button>'
    #     )
    #     res = render_template_with_form(
    #         "{% bootstrap_button 'test' icon='info-sign' button_class='btn-primary' %}"
    #     )
    #     self.assertEqual(
    #         res.strip(),
    #         '<button class="btn btn-primary"><span class="glyphicon glyphicon-info-sign"></span> test</button>'
    #     )
    #     res = render_template_with_form(
    #         "{% bootstrap_button 'test' icon='info-sign' button_type='submit' %}"
    #     )
    #     self.assertEqual(
    #         res.strip(),
    #         '<button class="btn btn-default" type="submit"><span class="glyphicon glyphicon-info-sign"></span> test</button>'
tests.py 文件源码 项目:SSBW 作者: AythaE 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def test_for_formset(self):
        TestFormSet = formset_factory(TestForm, extra=1)
        test_formset = TestFormSet()
        res = render_template_with_form(
            '{% bootstrap_formset formset show_label=False %}',
            {'formset': test_formset}
        )
        self.assertIn('sr-only', res)
    # TODO change for the new icons
    # def test_button_with_icon(self):
    #     res = render_template_with_form(
    #         "{% bootstrap_button 'test' icon='info-sign' %}"
    #     )
    #     self.assertEqual(
    #         res.strip(),
    #         '<button class="btn btn-default"><span class="glyphicon glyphicon-info-sign"></span> test</button>'
    #     )
    #     res = render_template_with_form(
    #         "{% bootstrap_button 'test' icon='info-sign' button_class='btn-primary' %}"
    #     )
    #     self.assertEqual(
    #         res.strip(),
    #         '<button class="btn btn-primary"><span class="glyphicon glyphicon-info-sign"></span> test</button>'
    #     )
    #     res = render_template_with_form(
    #         "{% bootstrap_button 'test' icon='info-sign' button_type='submit' %}"
    #     )
    #     self.assertEqual(
    #         res.strip(),
    #         '<button class="btn btn-default" type="submit"><span class="glyphicon glyphicon-info-sign"></span> test</button>'
tests.py 文件源码 项目:SSBW 作者: AythaE 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def test_for_formset(self):
        TestFormSet = formset_factory(TestForm, extra=1)
        test_formset = TestFormSet()
        res = render_template_with_form(
            '{% bootstrap_formset formset show_label=False %}',
            {'formset': test_formset}
        )
        self.assertIn('sr-only', res)
    # TODO change for the new icons
    # def test_button_with_icon(self):
    #     res = render_template_with_form(
    #         "{% bootstrap_button 'test' icon='info-sign' %}"
    #     )
    #     self.assertEqual(
    #         res.strip(),
    #         '<button class="btn btn-default"><span class="glyphicon glyphicon-info-sign"></span> test</button>'
    #     )
    #     res = render_template_with_form(
    #         "{% bootstrap_button 'test' icon='info-sign' button_class='btn-primary' %}"
    #     )
    #     self.assertEqual(
    #         res.strip(),
    #         '<button class="btn btn-primary"><span class="glyphicon glyphicon-info-sign"></span> test</button>'
    #     )
    #     res = render_template_with_form(
    #         "{% bootstrap_button 'test' icon='info-sign' button_type='submit' %}"
    #     )
    #     self.assertEqual(
    #         res.strip(),
    #         '<button class="btn btn-default" type="submit"><span class="glyphicon glyphicon-info-sign"></span> test</button>'
tests.py 文件源码 项目:SSBW 作者: AythaE 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def test_for_formset(self):
        TestFormSet = formset_factory(TestForm, extra=1)
        test_formset = TestFormSet()
        res = render_template_with_form(
            '{% bootstrap_formset formset show_label=False %}',
            {'formset': test_formset}
        )
        self.assertIn('sr-only', res)
    # TODO change for the new icons
    # def test_button_with_icon(self):
    #     res = render_template_with_form(
    #         "{% bootstrap_button 'test' icon='info-sign' %}"
    #     )
    #     self.assertEqual(
    #         res.strip(),
    #         '<button class="btn btn-default"><span class="glyphicon glyphicon-info-sign"></span> test</button>'
    #     )
    #     res = render_template_with_form(
    #         "{% bootstrap_button 'test' icon='info-sign' button_class='btn-primary' %}"
    #     )
    #     self.assertEqual(
    #         res.strip(),
    #         '<button class="btn btn-primary"><span class="glyphicon glyphicon-info-sign"></span> test</button>'
    #     )
    #     res = render_template_with_form(
    #         "{% bootstrap_button 'test' icon='info-sign' button_type='submit' %}"
    #     )
    #     self.assertEqual(
    #         res.strip(),
    #         '<button class="btn btn-default" type="submit"><span class="glyphicon glyphicon-info-sign"></span> test</button>'
models.py 文件源码 项目:django-wechat-api 作者: crazy-canux 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def modelformset_factory(model, form=ModelForm, formfield_callback=None,
                         formset=BaseModelFormSet, extra=1, can_delete=False,
                         can_order=False, max_num=None, fields=None, exclude=None,
                         widgets=None, validate_max=False, localized_fields=None,
                         labels=None, help_texts=None, error_messages=None,
                         min_num=None, validate_min=False):
    """
    Returns a FormSet class for the given Django model class.
    """
    meta = getattr(form, 'Meta', None)
    if meta is None:
        meta = type(str('Meta'), (object,), {})
    if (getattr(meta, 'fields', fields) is None and
            getattr(meta, 'exclude', exclude) is None):
        raise ImproperlyConfigured(
            "Calling modelformset_factory without defining 'fields' or "
            "'exclude' explicitly is prohibited."
        )

    form = modelform_factory(model, form=form, fields=fields, exclude=exclude,
                             formfield_callback=formfield_callback,
                             widgets=widgets, localized_fields=localized_fields,
                             labels=labels, help_texts=help_texts, error_messages=error_messages)
    FormSet = formset_factory(form, formset, extra=extra, min_num=min_num, max_num=max_num,
                              can_order=can_order, can_delete=can_delete,
                              validate_min=validate_min, validate_max=validate_max)
    FormSet.model = model
    return FormSet


# InlineFormSets #############################################################
views.py 文件源码 项目:peering-manager 作者: respawner 项目源码 文件源码 阅读 180 收藏 0 点赞 0 评论 0
def post(self, request):
        """
        The form has been submitted, process it.
        """
        ObjectFormSet = formset_factory(self.form_model, extra=0)
        formset = ObjectFormSet(request.POST)
        new_objects = []

        if formset.is_valid():
            for form in formset:
                if form.is_valid():
                    instance = form.save()
                    new_objects.append(instance)

            if new_objects:
                # Notify user of successful import
                message = 'Imported {} {}'.format(
                    len(new_objects), new_objects[0]._meta.verbose_name_plural)
                messages.success(request, message)

                # Log the import action
                UserAction.objects.log_import(request.user, ContentType.objects.get_for_model(
                    self.form_model._meta.model), message)

            return redirect(self.get_return_url())

        formset = ObjectFormSet()
        return render(request, self.template, {
            'formset': formset,
            'obj_type': self.form_model._meta.model._meta.verbose_name,
            'return_url': self.get_return_url(),
        })


问题


面经


文章

微信
公众号

扫码关注公众号