Django-tagify2
Поле ввода тегов django с использованием tagify.
Требования:
Документация:
Установка:
pip install django-tagify2
или
pip install --index-url https://pypi.org/simple/ django-tagify2
INSTALLED_APPS = [
...
'tagify',
]
TEMPLATES = [
...
'APP_DIRS': True,
...
]
Использование:
Класс формы:
Создайте форму в Django следующим образом:
from django import forms
from tagify.fields import TagField
class TagForm(forms.Form):
languages = TagField(label='languages', place_holder='add a language', delimiters=' ',
data_list=['Python', 'Java', 'PHP', 'Golang', 'JavaScript'], initial='Python Golang')
# или
def random_number():
return [random.randint(10, 19), random.randint(10, 19), random.randint(10, 19), random.randint(10, 19)]
class NumberForm(forms.Form):
number = TagField(label='number', place_holder='add a number', delimiters=' ',
data_list=random_number)
# или
class TagForm(forms.Form):
languages = TagField(label='languages', place_holder='add a language', delimiters=' ')
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['languages'].set_tag_args('data_list', get_languages())
Представление:
Чтобы обработать форму, необходимо создать её экземпляр в представлении для URL, где она должна быть опубликована:
from django.http import HttpResponse
from django.shortcuts import render
from example.forms import TagForm
def index(request):
if request.method == 'POST':
form = TagForm(request.POST)
if form.is_valid():
return HttpResponse(str(form.cleaned_data['languages']))
else:
form = TagForm()
return render(request, 'index.html', {'form': form})
Шаблон:
Самый простой пример:
<head>
{{ form.media }}
</head>
<body>
<form action="" method="post">
{% csrf_token %}
{{ form }}
<br>
<input type="submit" value="OK">
</form>
</body>
## Использование с моделью
```python
from django.db import models
from tagify.models import TagField
class People(models.Model):
name = models.CharField(max_length=30)
languages = TagField(verbose_name='languages')
Аргументы поля:
Имя | Тип | По умолчанию | Описание |
---|---|---|---|
place_holder | строка | "" | заполнитель |
delimiters | строка | "," | разделение тегов любым из этих разделителей. Пример: пробел или запятая - ", " |
data_list | список/функция | [] | массив тегов, которые разрешены |
black_list | список | [] | массив тегов, которые запрещены |
max_tags | int | None | максимальное количество тегов |
suggestions_chars | int | 1 | минимальное количество символов для ввода, которое показывает список предложений |
pattern | строка | "" | проверка ввода по шаблону RegEx. Например: "[1-9]" |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )