the system checks framework has a `check_finders` which is invoked if
`django.contrib.staticfiles` is in your `INSTALLED_APPS` which defers
checks to each individually configured finder as `finder.check()` - this
accounts for running the following line:
{{{
if not isinstance(settings.STATICFILES_DIRS, (list, tuple)):
}}}
which is intended to catch the problem scenario of `STATICFILES_DIRS = ()`
being edited to `STATICFILES_DIRS = ("mypath")` with no trailing comma to
make it a tuple, rather than an iterable string.
However, the collectstatic management command has `requires_system_checks
= False` so it appears possible to edit the value and directly run `python
manage.py collectstatic` without the type being checked or the error
raised.
Naively, I'm assuming that something like the following needs to occur:
{{{
for finder in get_finders():
finder.check() # ignoring NotImplementedError
# then somehow surface any errors back to stderr as if
`requires_system_checks = True`
}}}
I've not delved deeply into the "surface errors" part.
--
Ticket URL: <https://code.djangoproject.com/ticket/31528>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* stage: Unreviewed => Accepted
Comment:
We should be able to run only `staticfiles` checks with
`self.check(app_configs)` or by using `Tags`, `self.check(tags=[...])`.
--
Ticket URL: <https://code.djangoproject.com/ticket/31528#comment:1>
* owner: nobody => Hasan Ramezani
* status: new => assigned
--
Ticket URL: <https://code.djangoproject.com/ticket/31528#comment:2>
* has_patch: 0 => 1
Comment:
[https://github.com/django/django/pull/12869 PR]
--
Ticket URL: <https://code.djangoproject.com/ticket/31528#comment:3>
* status: assigned => closed
* resolution: => fixed
Comment:
In [changeset:"87faeee4e0c0eb3937e2e575794f4512e513d214" 87faeee4]:
{{{
#!CommitTicketReference repository=""
revision="87faeee4e0c0eb3937e2e575794f4512e513d214"
Fixed #31528 -- Made collectstatic management command run staticfiles
checks.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/31528#comment:4>