Эй, чуваки, теперь я создаю приложение, в котором я могу писать статьи, посты, учебные пособия и так далее, и теперь мне нужны отличные полезные редакторы, чтобы писать что-то, потому что мне нужен отличный инструмент.

вот именно сейчас у меня сильно сухая система для написания статей. Даже если я использую пробелы, пробел между текстом и т.д., у меня с этим проблемы, в моих статьях вижу сам результат:

В общем, меня бесит беспредел, который здесь царит, и хотелось бы с этим покончить, чтобы в моих статьях не было такого бардака. Для того, чтобы его организовать, мне понадобится какой-нибудь инструмент, который будет придавать моему тексту порядок, а также помогать в процессе написания статей. В нашем случае мы будем использовать: «django-summernote».

Давайте установим его!

pip install django-summernote

добавьте его в settings.py, как показано выше, чтобы получить что-то вроде этого:

Другой момент — добавить URL-адрес в наш urls.py вот так!

и мигрируй!

python manage.py migrate

в моем models.py мне нужно кое-что изменить:

from django.db import models
from django.utils.text import slugify
from django.urls import reverse

class Article(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    pub_date = models.DateTimeField('date published')
    image = models.ImageField(upload_to='images/', null=True, blank=True)

    def __str__(self):
        return self.title

class Editorial(models.Model):
    title = models.CharField(max_length=200)
    slug = models.SlugField(unique=True)
    thumbnail = models.ImageField(upload_to='images/', null=True, blank=True)
    content = models.TextField(null=True)

    def save(self, *args, **kwargs):
        if not self.slug:
            potential_slug = slugify(self.title)
            if Editorial.objects.filter(slug=potential_slug).exists():
                i = 1
                while Editorial.objects.filter(slug=potential_slug + '-' + str(i)).exists():
                    i += 1
                self.slug = potential_slug + '-' + str(i)
            else:
                self.slug = potential_slug
        super().save(*args, **kwargs)

    def get_absolute_url(self):
        return reverse('editorial', args=[str(self.slug)])

    def __str__(self):
        return self.title

как видите у меня есть:

class Editorial(models.Model):
    title = models.CharField(max_length=200)
    slug = models.SlugField(unique=True)
    thumbnail = models.ImageField(upload_to='images/', null=True, blank=True)
    content = models.TextField(null=True)

class Article(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    pub_date = models.DateTimeField('date published')
    image = models.ImageField(upload_to='images/', null=True, blank=True)

Нам нужно сосредоточиться на: «content = models.TextField(null=True)»

и измените его на: ‘content = SummernoteTextField(null=True)’и импортируйте необходимую библиотеку:‘from django_summernote.fields import SummernoteTextField’

Давайте заменим «контент» в редакциях и статьях!

Models.py

from django.db import models
from django.utils.text import slugify
from django.urls import reverse
from django_summernote.fields import SummernoteTextField

class Article(models.Model):
    title = models.CharField(max_length=200)
    content = SummernoteTextField(null=True)
    pub_date = models.DateTimeField('date published')
    image = models.ImageField(upload_to='images/', null=True, blank=True)

    def __str__(self):
        return self.title

class Editorial(models.Model):
    title = models.CharField(max_length=200)
    slug = models.SlugField(unique=True)
    thumbnail = models.ImageField(upload_to='images/', null=True, blank=True)
    content = SummernoteTextField(null=True)

    def save(self, *args, **kwargs):
        if not self.slug:
            potential_slug = slugify(self.title)
            if Editorial.objects.filter(slug=potential_slug).exists():
                i = 1
                while Editorial.objects.filter(slug=potential_slug + '-' + str(i)).exists():
                    i += 1
                self.slug = potential_slug + '-' + str(i)
            else:
                self.slug = potential_slug
        super().save(*args, **kwargs)

    def get_absolute_url(self):
        return reverse('editorial', args=[str(self.slug)])

    def __str__(self):
        return self.title

Как вы можете видеть выше, мы изменили «content = SummernoteTextField(null=True)» и добавили «from django_summernote.fields import SummernoteTextField».

Последнее, что нам нужно сделать, это изменить файл «Admin.py».

Admin.py

from django.contrib import admin
from .models import Article, Editorial

admin.site.register(Article)
admin.site.register(Editorial)

at:

from django.contrib import admin
from django_summernote.admin import SummernoteModelAdmin
from .models import Editorial

class EditorialAdmin(SummernoteModelAdmin):
    summernote_fields = ('content',)

admin.site.register(Editorial, EditorialAdmin)

и сейчас :

python manage.py makemigrations

и сейчас:

python manage.py migrate

а затем: сервер запуска python manage.py

И СОХРАНИТЕ!

Это все братцы!

# немного саморекламы

Привет! Меня зовут Дориан, и я управляю небольшой компанией по разработке программного обеспечения. Мое предложение для вас.

— Интернет-магазины и сайты
— Веб и мобильные приложения
— Компьютерная графика
— Автоматизация процессов
— Боты, API и инфраструктура
— Брендинг
> — Внедрение искусственного интеллекта (ИИ)
— Плагины WordPress и PrestaShop и др.
— Смарт-контракты / Запуск собственной криптовалюты / NFT.
— Внедрение технологии WEB3 / Блокчейн в бизнесе.

Вы хотите создать свой собственный криптопроект на основе какого-либо приложения или просто хотите создать свою криптовалюту или NFT?
Хотите внедрить технологии WEB3 и блокчейн в свой бизнес?

— Веб-сайт: www.travilabs.com
Свяжитесь с нами:
Facebook: https://www.facebook.com/profile. php?id=100091601081883
Электронная почта: [email protected]