1. Next to the Play button you can Edit Configuration
2. Click the green + on the left, add 2 "Django Server". Call one DEBUG, call the other RUN.
3. Add "DEBUG False" to RUN in its "Environment variables"
4. Add "DEBUG True" to DEBUG in its "Environment variables" (make sure the port # is different from RUN!)
Change `DEBUG = True` in `settings.py` to the below code
Go back to the main IDE window and either select RUN or DEBUG and go to localhost/404 to either see the dev debug 404 or your custom `404.html` (that you obviously previously made in the `/templates/` folder ;)
You can place this snippet in management/commands/ and have it upload files from disk into objects in your database.
Usage:
```
python manage.py upload_file_to_model myapp mymodel myfield 1 field_name /some/file/path
```
rounds floats in more human readable format e.g.
341.123434 mUSD -> 341mUSD
0.45345345 mUSD -> 0.5 mUSD
0.034545 mUSD -> 0.03 mUSD
0.0014545 mUSD -> 0.001 mUSD
etc.
[DRF browsable API interface](http://www.django-rest-framework.org/api-guide/filtering/#customizing-the-interface) for django-rest-framework-gis [InBBoxFilter](https://github.com/djangonauts/django-rest-framework-gis#inbboxfilter)
Tested with
Django==1.10.5
django-filter==1.0.1
djangorestframework==3.5.4
djangorestframework-gis==0.11

Small example of how to write your own function. This is not available in Django. The function just replaces static text strings, regular expressions are not supported.
The syntax is the same in SQLite, PostgreSQL, MySQL and Oracle.
The code was placed inside a helper file without using a class. The Django validator was not designed to work with validator classes, it would appear, so retrieving the value from the field proved to be a hassle. Just create a helper file, import it on your model, and use the validator in the standard way, as such:
cnpj = models.CharField(unique=True, max_length=14, validators=[validate_CNPJ])
cpf = models.CharField(unique=True, max_length=14, validators=[validate_CPF])
FileField that checks that the file is a valid CSV and if specified in `expected_fieldnames` checks that the fields match exactly.
The widget's `accept` parameter is set to accept csv, text and excel files.
**TODO**: Validate the entirety of the CSV file, not just the headers. But this should be enough for most use cases, as checking the whole file could be computationally expensive for huge files.
Example usage:
people = CSVField(expected_fieldnames=['First Name', 'Last Name'])
This snippets is inspired from [#2995](https://djangosnippets.org/snippets/2995/) but add the following:
* get rid of `singledispatch` so we can use it with python2 without pip installing anything
* streaming capabilities
* the configuration params (header, fields, exclude...) are passed to the action function so we don't pollute the ModelAdmin class
* fix utf8 issue in header
Implements necessary permission checks on a user model to be compatible with django admin, but just return true on all permissions without actually checking it against anything. Useful when you have a user model that should always be allowed to use django admin, and you don't care about using django's own PermissionsMixin and don't want to have those models added to your database.
You're looking at the most-bookmarked snippets on the site; if you'd like to help useful snippets show up here, sign up for an account and you'll get your own bookmarks list.