无法将我的应用程序与 Django 中的文本编辑器集成
Can not integrate my app with a text editor in django
虽然我试过几个像tinymce这样的富文本编辑器,但我无法让它工作,没有出现错误,页面加载正常,一个字段似乎被填充,但没有任何编辑选项。
尝试使用我在 google 中找到的几种方法,但 none 能够帮助我
----base.html
<head>
...
<!-- Tinymce Text-Editor (Must be in Head Tag) -->
<script src="{% static '/tinymce/js/tinymce/tinymce.min.js' %}"></script>
<script type="text/javascript" src="{% static 'js/custom.js' %}" ></script>
...
</head>
---post_form.html
{% extends "blog/base.html" %}
<!-- {% load crispy_forms_tags %} -->
{% block content %}
<div class="content-section">
<form method="POST">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Blog Post</legend>
<!-- {{ form|crispy }} -->
{{ form.as_p }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Post</button>
</div>
</form>
</div>
{% endblock content %}
---- models.py
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse
from simple_history.models import HistoricalRecords
from tinymce.models import HTMLField
class Post(models.Model):
title = models.CharField(max_length = 100)
versao = models.CharField(max_length=10, default=1)
# content = models.TextField()
content = HTMLField()
resumo_das_mudancas = models.TextField(default='Não houve mudanças')
date_posted = models.DateTimeField(default = timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('post-detail', kwargs ={'pk':self.pk})
.....
------settings.py
...
INSTALLED_APPS = [
'django.contrib.sites',
'django.contrib.staticfiles',
'django.contrib.contenttypes',
'django.contrib.auth',
'django.contrib.flatpages',
'simple_history',
'blog.apps.BlogConfig',
'users.apps.UsersConfig',
'django.contrib.admin',
'django.contrib.sessions',
'django.contrib.messages',
'crispy_forms',
'storages',
'tinymce',
]
没有任何错误信息,它只是不起作用,你能帮我吗?
Django CKEditor 非常适合我。这是我必须做的一个例子:
requirements.txt
django-ckeditor==5.6.1
settings.py
INSTALLED_APPS = [
...
'ckeditor'
]
CKEDITOR_CONFIGS = {
'default': {
'toolbar': 'Custom',
'toolbar_Custom': [
['Bold', 'Italic', 'Underline'],
['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],
['Link', 'Unlink'],
['RemoveFormat', 'Source']
],
'height': 300,
'width': 600
}
}
models.py
class ExampleModel(models.Model):
....
example_field = models.TextField(null=True, blank=True)
admin.py
from ckeditor.widgets import CKEditorWidget
class ExampleForm(forms.ModelForm):
class Meta:
model = ExampleModel
fields = '__all__'
widgets = {'example_field': CKEditorWidget()}
class ExampleAdmin(admin.ModelAdmin):
form = ExampleForm
虽然我试过几个像tinymce这样的富文本编辑器,但我无法让它工作,没有出现错误,页面加载正常,一个字段似乎被填充,但没有任何编辑选项。
尝试使用我在 google 中找到的几种方法,但 none 能够帮助我
----base.html
<head>
...
<!-- Tinymce Text-Editor (Must be in Head Tag) -->
<script src="{% static '/tinymce/js/tinymce/tinymce.min.js' %}"></script>
<script type="text/javascript" src="{% static 'js/custom.js' %}" ></script>
...
</head>
---post_form.html
{% extends "blog/base.html" %}
<!-- {% load crispy_forms_tags %} -->
{% block content %}
<div class="content-section">
<form method="POST">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Blog Post</legend>
<!-- {{ form|crispy }} -->
{{ form.as_p }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Post</button>
</div>
</form>
</div>
{% endblock content %}
---- models.py
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse
from simple_history.models import HistoricalRecords
from tinymce.models import HTMLField
class Post(models.Model):
title = models.CharField(max_length = 100)
versao = models.CharField(max_length=10, default=1)
# content = models.TextField()
content = HTMLField()
resumo_das_mudancas = models.TextField(default='Não houve mudanças')
date_posted = models.DateTimeField(default = timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('post-detail', kwargs ={'pk':self.pk})
.....
------settings.py
...
INSTALLED_APPS = [
'django.contrib.sites',
'django.contrib.staticfiles',
'django.contrib.contenttypes',
'django.contrib.auth',
'django.contrib.flatpages',
'simple_history',
'blog.apps.BlogConfig',
'users.apps.UsersConfig',
'django.contrib.admin',
'django.contrib.sessions',
'django.contrib.messages',
'crispy_forms',
'storages',
'tinymce',
]
没有任何错误信息,它只是不起作用,你能帮我吗?
Django CKEditor 非常适合我。这是我必须做的一个例子:
requirements.txt
django-ckeditor==5.6.1
settings.py
INSTALLED_APPS = [
...
'ckeditor'
]
CKEDITOR_CONFIGS = {
'default': {
'toolbar': 'Custom',
'toolbar_Custom': [
['Bold', 'Italic', 'Underline'],
['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],
['Link', 'Unlink'],
['RemoveFormat', 'Source']
],
'height': 300,
'width': 600
}
}
models.py
class ExampleModel(models.Model):
....
example_field = models.TextField(null=True, blank=True)
admin.py
from ckeditor.widgets import CKEditorWidget
class ExampleForm(forms.ModelForm):
class Meta:
model = ExampleModel
fields = '__all__'
widgets = {'example_field': CKEditorWidget()}
class ExampleAdmin(admin.ModelAdmin):
form = ExampleForm