[Django] #29316: TypeError when defining `strip` on a CharField

1 view
Skip to first unread message

Django

unread,
Apr 11, 2018, 10:02:55 AM4/11/18
to django-...@googlegroups.com
#29316: TypeError when defining `strip` on a CharField
-------------------------------------+-------------------------------------
Reporter: Daniel | Owner: nobody
Samuels |
Type: Bug | Status: new
Component: Database | Version: 2.0
layer (models, ORM) |
Severity: Normal | Keywords:
Triage Stage: | Has patch: 0
Unreviewed |
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------+-------------------------------------
In Django 1.9 the
[https://docs.djangoproject.com/en/1.9/ref/forms/fields/#django.forms.CharField.strip
`strip` argument] was added #4960, but if you actually specify it on a
CharField you get a TypeError. This means that you cannot disable it by
setting `strip=False` - you can't even set `strip=True` if you wanted to
for whatever reason.

I've created a minimal reproduction of the problem, it's available
[https://github.com/danielsamuels/django-strip-false-test on Github]. The
traceback is as follows:

{{{
$ ./manage.py runserver
Unhandled exception in thread started by <function
check_errors.<locals>.wrapper at 0x109b41598>
Traceback (most recent call last):
File "/Users/danielsamuels/Workspace/_other/django-strip-false-
test/.venv/lib/python3.6/site-packages/django/utils/autoreload.py", line
225, in wrapper
fn(*args, **kwargs)
File "/Users/danielsamuels/Workspace/_other/django-strip-false-
test/.venv/lib/python3.6/site-
packages/django/core/management/commands/runserver.py", line 112, in
inner_run
autoreload.raise_last_exception()
File "/Users/danielsamuels/Workspace/_other/django-strip-false-
test/.venv/lib/python3.6/site-packages/django/utils/autoreload.py", line
248, in raise_last_exception
raise _exception[1]
File "/Users/danielsamuels/Workspace/_other/django-strip-false-
test/.venv/lib/python3.6/site-
packages/django/core/management/__init__.py", line 327, in execute
autoreload.check_errors(django.setup)()
File "/Users/danielsamuels/Workspace/_other/django-strip-false-
test/.venv/lib/python3.6/site-packages/django/utils/autoreload.py", line
225, in wrapper
fn(*args, **kwargs)
File "/Users/danielsamuels/Workspace/_other/django-strip-false-
test/.venv/lib/python3.6/site-packages/django/__init__.py", line 24, in
setup
apps.populate(settings.INSTALLED_APPS)
File "/Users/danielsamuels/Workspace/_other/django-strip-false-
test/.venv/lib/python3.6/site-packages/django/apps/registry.py", line 112,
in populate
app_config.import_models()
File "/Users/danielsamuels/Workspace/_other/django-strip-false-
test/.venv/lib/python3.6/site-packages/django/apps/config.py", line 198,
in import_models
self.models_module = import_module(models_module_name)
File
"/usr/local/Cellar/python/3.6.4_4/Frameworks/Python.framework/Versions/3.6/lib/python3.6/importlib/__init__.py",
line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in
_find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in
_call_with_frames_removed
File "/Users/danielsamuels/Workspace/_other/django-strip-false-
test/strip/models.py", line 4, in <module>
class Test(models.Model):
File "/Users/danielsamuels/Workspace/_other/django-strip-false-
test/strip/models.py", line 8, in Test
strip=False,
File "/Users/danielsamuels/Workspace/_other/django-strip-false-
test/.venv/lib/python3.6/site-
packages/django/db/models/fields/__init__.py", line 1042, in __init__
super().__init__(*args, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'strip'
}}}

The error seems to be as simple as the `Field` class missing the `strip`
attribute in it's `__init__` method.

--
Ticket URL: <https://code.djangoproject.com/ticket/29316>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Apr 11, 2018, 10:03:33 AM4/11/18
to django-...@googlegroups.com
#29316: TypeError when defining `strip` on a CharField
-------------------------------------+-------------------------------------
Reporter: Daniel Samuels | Owner: nobody
Type: Bug | Status: new
Component: Database layer | Version: 2.0
(models, ORM) |
Severity: Normal | Resolution:
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Daniel Samuels):

* cc: Daniel Samuels (added)


--
Ticket URL: <https://code.djangoproject.com/ticket/29316#comment:1>

Django

unread,
Apr 11, 2018, 10:34:42 AM4/11/18
to django-...@googlegroups.com
#29316: TypeError when defining `strip` on a CharField
-------------------------------------+-------------------------------------
Reporter: Daniel Samuels | Owner: nobody
Type: Bug | Status: closed

Component: Database layer | Version: 2.0
(models, ORM) |
Severity: Normal | Resolution: invalid
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Tim Graham):

* status: new => closed
* resolution: => invalid


Comment:

It looks like you've confused the form field with the model field (which
doesn't have `strip`).

--
Ticket URL: <https://code.djangoproject.com/ticket/29316#comment:2>

Django

unread,
Apr 11, 2018, 10:35:45 AM4/11/18
to django-...@googlegroups.com
#29316: TypeError when defining `strip` on a CharField
-------------------------------------+-------------------------------------
Reporter: Daniel Samuels | Owner: nobody
Type: Bug | Status: closed
Component: Database layer | Version: 2.0
(models, ORM) |
Severity: Normal | Resolution: invalid
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Daniel Samuels):

I think you are correct!

--
Ticket URL: <https://code.djangoproject.com/ticket/29316#comment:3>

Reply all
Reply to author
Forward
0 new messages