Здравствуйте всем, вам нужно знать, как использовать Ckeditor в Django, каковы настройки для Ckeditor и как его использовать в шаблонах?
Прежде всего, вы должны установить Ckeditor
pip install django-ckeditor
Создайте проект Django
django-admin startproject PROJECT_NAME
Создать приложение в проекте
python manage.py startapp app1
Добавить App1 и ckeditor в настройки.py Установленные приложения
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app1', 'ckeditor', ]
Теперь создайте модели в моделях.py. В этом файле вы должны импортировать Richtextfield Использование ‘from ckeditor.fields Import Richtextfield’ Syntex.
from django.db import models from ckeditor.fields import RichTextField # Create your models here. class User(models.Model): user_name = models.CharField(max_length=70) pwd = models.CharField(max_length=100) def __str__(self): return self.user_name class Post(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) title = models.CharField(max_length=100) content = RichTextField(blank=True,null=True) def __str__(self): return self.title
Зарегистрировать модели в файле admin.py
from django.contrib import admin from .models import User, Post # Register your models here. @admin.register(User) class UserAdmin(admin.ModelAdmin): list_display = ['id','user_name','pwd'] @admin.register(Post) class PostAdmin(admin.ModelAdmin): list_display = ['id','user','title']
Создать forms.py Файл в приложении1.
from django import forms from .models import * from ckeditor.fields import RichTextField class PostForm(forms.ModelForm): userName = forms.CharField(widget=forms.TextInput(), required=True, max_length=100) title = forms.CharField(widget=forms.TextInput(),required=True, max_length=100) content = RichTextField() class Meta: model = Post fields = ('userName','title','content',)
Создать urls.py Файл в приложении1
from django.urls import path from . import views urlpatterns = [ path('', views.home, name='home'), path('add_post/', views.AddPostView.as_view(), name='add_post'), path('all_post/', views.SeePostView.as_view(), name='see_post'), ]
Включите App1 urls.py Файл в проекте urls.py , как это:-
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('app1.urls')) ]
Кодирование в views.py файл
from django.shortcuts import render from django.views.generic.list import ListView from .models import User, Post from .forms import PostForm from django.http import HttpResponse # Create your views here. def home(request): return HttpResponse('Add Post') class AddPostView(ListView): model = Post def get(self, request): form = PostForm() return render(request, 'app1/index.html', {'form':form}) def post(self, request): form = PostForm(request.POST) if form.is_valid(): userName = form.cleaned_data['userName'] title = form.cleaned_data['title'] content = form.cleaned_data['content'] user_obj = User.objects.get(user_name=userName) add_post = Post.objects.create(user=user_obj, title=title, content=content) add_post.save() form = PostForm() return render(request,'app1/index.html',{'form':form}) class SeePostView(AddPostView): model = Post def get(self,request): all_post = self.model.objects.all().order_by('-id') return render(request, 'app1/all_post.html', {'posts':all_post})
Вот и все.
Если вы столкнетесь с какой -либо проблемой, чем прокомментируйте меня.
Благодарить Ты.
Оригинал: “https://dev.to/madhubankhatri/how-to-use-ckeditor-in-django-2igi”