Kemudian.. add `django_summernote
to app setting.py
Copy // Some code
INSTALLED_APPS += ('django_summernote', )
Copy // Some code
from django.urls import include
# ...
urlpatterns = [
...
path('summernote/', include('django_summernote.urls')),
...
]
Tambahkan ke url Project bukan URL APP..
Copy from django_summernote.widgets import SummernoteWidget, SummernoteInplaceWidget
Full code display berada di bawah.
Copy content = forms.CharField(widget=SummernoteWidget()) # instead of forms.Textarea
class Meta:
model = PostNews
fields = ['content']
Copy // Some code
class AddNewsForm(TranslatableModelForm):
content = forms.CharField(widget=SummernoteWidget()) # instead of forms.Textarea
class Meta:
model = PostNews
fields = ['title', 'author', 'content', 'images', 'category', 'slug', 'created_at']
widgets = {
'title': forms.TextInput(attrs={'placeholder': 'Enter the news title'}),
'images': forms.ClearableFileInput(attrs={'placeholder': 'Upload related images'}),
'author': forms.Select(attrs={
'class': 'form-control', # Menambahkan kelas CSS (opsional)
}),
'category': forms.Select(attrs={
'class': 'form-control', # Menambahkan kelas CSS (opsional)
}),
'slug': forms.TextInput(attrs={'placeholder': 'Enter a unique slug (optional)'}),
'created_at': forms.DateTimeInput(
attrs={
'type': 'datetime-local', # Use HTML5 datetime-local input
'placeholder': 'Select date and time',
}
)
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['category'].empty_label = "Pilih Kategori"
self.fields['author'].empty_label = "Pilih Penulis"
```
Agar antara Admin.py dan form html yang dibuat dapat berfungsi dengan baik, antara keduanya, silahkan update admin.py
Copy class PostNewsAdminForm(forms.ModelForm):
# content = forms.CharField(widget=CKEditorWidget()) # Gunakan CKEditor untuk content
content = forms.CharField(widget=SummernoteWidget())
class Meta:
model = PostNews
fields = '__all__'
def __init__(self, *args, **kwargs):
super(PostNewsAdminForm, self).__init__(*args, **kwargs)
if self.instance and self.instance.pk:
self.fields['content'].initial = self.instance.content