Подключение django-emoji-picker к проекту
Захотел подключить эмоджи к полям формы, нашел готовый проект, который необходимо было установить через Pip, ссылка на проект https://pypi.org/project/django-emoji-picker/. Установил успешно, подключил как указано автором и не работает, в поле инпута нет иконки как у автора, хотя параметр задан такой же test = forms.CharField(widget=EmojiPickerTextInputAdmin). Решил попробовать задать другой параметр test = forms.CharField(widget=forms.Textarea), но мое поля test осталось input вместо Textarea. Может я не правильно передаю параметры или необходимо еще, что то для подключения данного виджета?
Моя форма:
from django import forms
from emoji_picker.widgets import EmojiPickerTextInputAdmin, EmojiPickerTextareaAdmin
from .models import Message
class MessageForm(forms.ModelForm):
class Meta:
model = Message
fields = ['message', 'test']
labels = {
'message': ''
}
widgets = {
'message': forms.TextInput(attrs={'class': 'form-control'})
}
test = forms.CharField(widget=EmojiPickerTextInputAdmin)
Класс модели:
class Message(models.Model):
slug_message = models.SlugField(max_length=150, blank=False, unique=True)
chat = models.ForeignKey(Chat, on_delete=models.CASCADE, verbose_name='Чат')
author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='Автор')
message = models.TextField(_('Сообщение'))
date_pub = models.DateTimeField(default=timezone.datetime.now())
is_read = models.BooleanField(default=False, verbose_name='Прочитано')
is_update = models.BooleanField(default=False, verbose_name='Редактировано')
date_update = models.DateTimeField(null=True, blank=True)
test = models.CharField(max_length=2000, blank=True, null=True)
Шаблон формы:
<form id="message-form" class="panel panel-body" method="post">
{% load bootstrap3 %}
{% csrf_token %}
{{ form }}
<button type="submit" class="btn btn-default btn-sm"><span class="ico ico-comment">
</span>Отправить</button>
</form>
Ответы (1 шт):
Попробуйте так, кастомное поле должно быть за пределами мета класса:
class MessageForm(forms.ModelForm):
test = forms.CharField(widget=EmojiPickerTextInputAdmin)
class Meta:
model = Message
fields = ['message']
labels = {
'message': ''
}
widgets = {
'message': forms.TextInput(attrs={'class': 'form-control'})
}