Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/edoburu/django-any-urlfield
An improved URL selector to choose between internal models and external URLs
https://github.com/edoburu/django-any-urlfield
django django-admin django-field
Last synced: 13 days ago
JSON representation
An improved URL selector to choose between internal models and external URLs
- Host: GitHub
- URL: https://github.com/edoburu/django-any-urlfield
- Owner: edoburu
- License: apache-2.0
- Created: 2012-04-11T22:01:08.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2021-10-27T14:02:37.000Z (about 3 years ago)
- Last Synced: 2024-09-19T00:37:48.312Z (about 2 months ago)
- Topics: django, django-admin, django-field
- Language: Python
- Homepage:
- Size: 282 KB
- Stars: 51
- Watchers: 8
- Forks: 15
- Open Issues: 4
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.rst
- License: LICENSE
Awesome Lists containing this project
- awesome-django - django-any-urlfield - An improved URL selector to choose between internal models and external URLs. (Third-Party Packages / Model Fields)
README
.. image:: https://img.shields.io/pypi/v/django-any-urlfield.svg
:target: https://pypi.python.org/pypi/django-any-urlfield/
.. image:: https://img.shields.io/pypi/l/django-any-urlfield.svg
:target: https://pypi.python.org/pypi/django-any-urlfield/
.. image:: https://img.shields.io/codecov/c/github/edoburu/django-any-urlfield/master.svg
:target: https://codecov.io/github/edoburu/django-any-urlfield?branch=master
.. image:: https://readthedocs.org/projects/django-any-urlfield/badge/?version=latest
:target: https://django-any-urlfield.readthedocs.io/en/latest/django-any-urlfield
===================The ``any_urlfield`` module provides an improved URL selector
that supports both URLs to internal models and external URLs.This addresses is a common challenge in CMS interfaces;
where providing a ``URLField`` makes it hard to enter internal URLs,
while providing a ``ModelChoiceField`` makes it too inflexible.
This package provides the both of both worlds.For more details, see the documentation_ at Read The Docs.
Screenshot
==========.. figure:: https://github.com/edoburu/django-any-urlfield/raw/master/docs/images/anyurlfield1.png
:width: 363px
:height: 74px
:alt: AnyUrlField, with external URL input... figure:: https://github.com/edoburu/django-any-urlfield/raw/master/docs/images/anyurlfield2.png
:width: 290px
:height: 76px
:alt: AnyUrlField, with internal page input.Installation
============First install the module, preferably in a virtual environment::
pip install django-any-urlfield
Add the module to the installed apps:
.. code-block:: python
INSTALLED_APPS += (
'any_urlfield',
)Usage
-----Add the field to a Django model:
.. code-block:: python
from django.db import models
from any_urlfield.models import AnyUrlFieldclass MyModel(models.Model):
title = models.CharField("Title", max_length=200)
url = AnyUrlField("URL")By default, the ``AnyUrlField`` only supports linking to external pages.
Register any model that the ``AnyUrlField`` should support linking to:
.. code-block:: python
from any_urlfield.models import AnyUrlField
AnyUrlField.register_model(Article)Now, the ``AnyUrlField`` offers users a dropdown field to directly select an article.
The default field is a ``django.forms.models.ModelChoiceField`` field
with a ``django.forms.widgets.Select`` widget.
This can be customized using the ``form_field`` and ``widget`` parameters:.. code-block:: python
from any_urlfield.models import AnyUrlField
from any_urlfield.forms import SimpleRawIdWidgetAnyUrlField.register_model(Article, widget=SimpleRawIdWidget(Article))
That will display the ``Article`` model as raw input field with a browse button.
Contributing
------------This module is designed to be generic. In case there is anything you didn't like about it,
or think it's not flexible enough, please let us know. We'd love to improve it!If you have any other valuable contribution, suggestion or idea,
please let us know as well because we will look into it.
Pull requests are welcome too. :-).. _documentation: https://django-any-urlfield.readthedocs.io/