Skip to content

copy SelectField.choices so each instance can be modified independently #286

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 15, 2016
Merged

copy SelectField.choices so each instance can be modified independently #286

merged 1 commit into from
Jul 15, 2016

Conversation

davidism
Copy link
Member

closes #284

If choices=[] is passed and multiple instances of the form (and field) are created, then mutating one field's choices mutates all of them. Instead, copy the choices when the bound field is initialized.

@davidism davidism self-assigned this Jul 15, 2016
@davidism davidism merged commit 51f21ee into pallets-eco:master Jul 15, 2016
@davidism davidism deleted the copy_choices branch July 15, 2016 15:52
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Nov 12, 2018
Version 2.2.1
-------------

Released on June 7th, 2018

-   :class:`~fields.StringField` only sets ``data = ''`` when form data
    is empty and an initial value was not provided. This fixes an issue
    where the default value wasn't rendered with the initial form.
    (`#291`_, `#401`_)

.. _#291: pallets-eco/wtforms#291
.. _#401: pallets-eco/wtforms#401


Version 2.2
-----------

Released on June 2nd, 2018

-   Merged new and updated translations from the community.
-   Passing ``data_`` args to render a field converts all the
    underscores to hyphens when rendering the HTML attribute, not just
    the first one. ``data_foo_bar`` becomes ``data-foo-bar``. (`#248`_)
-   The :class:`~validators.UUID` validator uses the :class:`uuid.UUID`
    class instead of a regex. (`#251`_)
-   :class:`~fields.SelectField` copies the list of ``choices`` passed
    to it so modifying an instance's choices will not modify the global
    form definition. (`#286`_)
-   Fields call :meth:`~fields.Field.process_formdata` even if the raw
    data is empty. (`#280`_)
-   Added a :class:`~fields.MultipleFileField` to handle a multi-file
    input. :class:`~fields.FileField` continues to handle only one
    value. The underlying :class:`~widgets.FileInput` widget gained a
    ``multiple`` argument. (`#281`_)
-   :class:`~fields.SelectField` choices can contain HTML (MarkupSafe
    ``Markup`` object or equivalent API) and will be rendered properly.
    (`#302`_)
-   :class:`~fields.TimeField` and
    :class:`html5.TimeField <fields.html5.TimeField>` were added.
    (`#254`_)
-   Improved :class:`~validators.Email`. Note that it is still
    unreasonable to validate all emails with a regex and you should
    prefer validating by actually sending an email. (`#294`_)
-   Widgets render the ``required`` attribute when using a validator
    that provides the ``'required'`` flag, such as
    :class:`~validators.DataRequired`. (`#361`_)
-   Fix a compatibility issue with SQLAlchemy 2.1 that caused
    :class:`~ext.sqlalchemy.fields.QuerySelectField` to fail with
    ``ValueError: too many values to unpack``. (`#391`_)

.. _#248: pallets-eco/wtforms#248
.. _#251: pallets-eco/wtforms#251
.. _#254: pallets-eco/wtforms#254
.. _#280: pallets-eco/wtforms#280
.. _#281: pallets-eco/wtforms#281
.. _#286: pallets-eco/wtforms#286
.. _#294: pallets-eco/wtforms#294
.. _#302: pallets-eco/wtforms#302
.. _#361: pallets-eco/wtforms#361
.. _#391: pallets-eco/wtforms#391
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Not possible to have two forms of same class at the same time
1 participant