Add UTF-8 Validation to Django FileFields, CharFields and TextFields
Project description
Sometimes you want to only allow UTF-8 only content. This library extends the Django FileField, CharField and TextField by checking if the content of a file or text is UTF-8. If not, it generates an error. An extra check is executed for four byte long characters, which too can cause problems when trying to process a file as UTF-8.
Requirements
Django >= 1.8
Installation
pip install django-utf8field
Usage
Add the app to your settings:
INSTALLED_APPS = ( ... 'utf8field', ...
FileField
Create a model like you would do normally, but instead of using FileField you use UTF8FileField:
from django.db import models from utf8field.fields import UTF8FileField class YourModel(models.Model): title = models.CharField(max_length=255) created_on = models.DateTimeField(auto_add_on=True) text = models.UTF8FileField()
You also have the option to provide the option max_content_length to limit the number of characters in the file. If the content is longer an error will be displayed.
text = models.UTF8FileField(max_content_length=1000)
CharField
Create a model like you would do normally, but instead of using CharField you use UTF8CharField:
from django.db import models from utf8field.fields import UTF8CharField class YourModel(models.Model): title = models.CharField(max_length=255) created_on = models.DateTimeField(auto_add_on=True) text = models.UTF8CharField(max_length=1000)
TextField
Create a model like you would do normally, but instead of using TextField you use UTF8TextField:
from django.db import models from utf8field.fields import UTF8TextField class YourModel(models.Model): title = models.CharField(max_length=255) created_on = models.DateTimeField(auto_add_on=True) text = models.UTF8TextField()
Development
To run the tests make sure Django is installed (pip install django) and execute
python manage.py test
To create extra translations, execute
pm makemessages --locale=nl --extension=py --ignore=dev_example --ignore=build
… and modify the resulting django.po file in utf8field/locale/nl/LC_MESSAGES.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django_utf8field-0.3.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1efce9ee6b5f73f969b15b730ad2f9559a4d3eb3e2d32aec4bb6161a87a7e41 |
|
MD5 | 0e89109439e48270e990ef9dedbb608f |
|
BLAKE2b-256 | ac7004d3f5caf03f7ade327b80aa9a7632b8a9436933e3fff7364e355ccd5482 |