6.8. Admin Widget¶
from django import forms
from django.db import models
from django.contrib import admin
from emoji_picker.widgets import EmojiPickerTextInput, EmojiPickerTextarea
from shop.models import Customer
@admin.register(Customer)
class CustomerAdmin(admin.ModelAdmin):
formfield_overrides = {
models.ManyToManyField: {'widget': forms.CheckboxSelectMultiple},
models.CharField: {'widget': EmojiPickerTextInput},
models.TextField: {'widget': EmojiPickerTextarea},
# models.TextField: {'widget': Textarea(attrs={'cols': 40, 'rows': 4})},
}
6.8.1. Changeform¶
>>>
... @admin.register(Customer)
... class CustomerAdmin(admin.ModelAdmin):
... def get_changeform_initial_data(self, request):
... return {
... 'when': date.today(),
... 'reporter': request.user.pk
... }
6.8.2. Use Case - 0x01¶
python -m pip install django-emoji-picker
INSTALLED_APPS += ['emoji_picker']
>>>
... from emoji_picker.widgets import EmojiPickerTextInputAdmin, EmojiPickerTextareaAdmin
...
...
... class YourModelForm(forms.ModelForm):
... short_text = forms.CharField(widget=EmojiPickerTextInputAdmin)
... long_text = forms.CharField(widget=EmojiPickerTextareaAdmin)
6.8.3. Use Case - 0x02¶
python -m pip install django-emoji-picker
INSTALLED_APPS += ['emoji_picker']
>>>
... from django.db import models
... from django.contrib import admin
... from emoji_picker.widgets import EmojiPickerTextInput, EmojiPickerTextarea
... from shop.models import Customer
...
...
... @admin.register(Customer)
... class CustomerAdmin(admin.ModelAdmin):
... formfield_overrides = {
... models.CharField: {'widget': EmojiPickerTextInput},
... models.TextField: {'widget': EmojiPickerTextarea},
... }