【发布时间】:2026-01-31 19:50:01
【问题描述】:
我正在尝试使用模型字段和 ckeditor wiget 创建模板,但我无法在 html 中呈现字段,而是显示一个没有错误的空白页面
这是我的forms.py
from django import forms
from app.models import BlogPost
from ckeditor.widgets import CKEditorWidget
class BlogForm(forms.ModelForm):
title = forms.CharField(required=True)
body = forms.CharField(widget=CKEditorWidget())
tags = forms.CharField(required=True)
class Meta:
model = BlogPost
models.py
from django.db import models
from ckeditor.fields import RichTextField
class BlogPost(models.Model):
title = models.CharField(max_length=70)
body = RichTextField()
tags = models.CharField(max_length=10)
views.py
def write_post(request):
blog_form=BlogForm()
return render(request,'write_post.html',{'blog_form':blog_form})
write_post.html
{%block content%}
{% load staticfiles %}<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="{% static "ckeditor/ckeditor/ckeditor.js" %}"></script>
</head>
<div>
<h1>Create a Post</h1>
<form action="/submit" method="post">
{% csrf_token %}
<div>
{{ form.title }}
{{ form.body }}
{{ form.tags }}
</div>
<input type="submit" value="Post">
</form>
</div>
{% endblock %}
此外,我已将“ckeditor”、应用程序添加到 settings.py 并以正确的方式配置了所有静态 url。
当我只尝试在模板中仅渲染 ckeditor-widget 时,我没有任何问题,一切都很完美
空白 -- write_post.html(输出)
【问题讨论】:
-
{{ form.as_p }}是否显示表单? (感谢您可能不想要as_p格式,只是想看看有什么用 -
这对我来说甚至都不起作用,当我只尝试渲染没有模型字段的 ckeditor 小部件时它起作用了
-
不使用ckeditor会渲染表单吗?
-
是的。当我在模板中使用 for 循环渲染字段时,' {% for field in blog_form %} {{ field }} {% endfor %}' 并且在我使用上述内容时没有完成
标签: django django-forms django-templates ckeditor