Skip to content

Latest commit

 

History

History
55 lines (35 loc) · 1.39 KB

README.rst

File metadata and controls

55 lines (35 loc) · 1.39 KB

django-smarturlfield

Django model and form fields that performs URL normalization. For example it adds 'http:https://' prefix and forces punicode encoding for non-ascii URLS. There are also fields that stores a list of URLs.

Tested with Django 3.0.x (should also work with 2.x)

Travis-CI build status

Installing

$ pip install django-smarturlfield

Fields

SmartURLFormField renders as <input> and can handle values like this:

  • http:https://example.com
  • example.com (normalized to http:https://example.com)
  • земфира.рф (normalized to http:https://xn--80ajfftz0a.xn--p1ai)

MultipleSmartURLFormField renders as <textarea> and can store multiple URLs separated by newline.

Usage

In forms:

from smarturlfield import SmartURLFormField, MultipleSmartURLFormField

class MyForm(forms.Form):
  url = SmartURLFormField()
  url_list = MultipleSmartURLFormField()  # textarea
  # ...

In models:

from smarturlfield import SmartURLDbField, MultipleSmartURLDbField

class MyModel(models.Model):
    url = SmartURLDbField()
    url_list = MultipleSmartURLDbField()  # textarea
    # ...