Рубрики
Без рубрики

Как использовать Ckeditor в Джанго?

Всем привет, Вам нужно знать, как использовать Ckeditor в Django, каковы настройки для … Помечено с Django, Python, Tutorial, загрузкой.

Здравствуйте всем, вам нужно знать, как использовать 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”