Javascript Django写博客的表格

Javascript Django写博客的表格,javascript,python,html,django,django-forms,Javascript,Python,Html,Django,Django Forms,作为Django的初学者,我知道如何使用Django字段标题和内容模型创建博客的基本网站。。。就这样 但现在我想创建一个真正的动态博客表单,它可以有多个子标题、代码块、文本块和图像 或者基本上是一个博客形式,它可以有这些类型的块的随机数(如代码、文本、图像等字段)。用户可以根据需要添加任意数量的块 此外,这些块(或字段)将作为博客文章的一部分,应按照用户创建的顺序保存在数据集中 我怎样才能做到这一点 谢谢您的时间。一种非常简单的方法是添加所见即所得编辑器包 你有,而且,那是最受欢迎的 它们中的每

作为Django的初学者,我知道如何使用Django字段标题和内容模型创建博客的基本网站。。。就这样

但现在我想创建一个真正的动态博客表单,它可以有多个子标题、代码块、文本块和图像

或者基本上是一个博客形式,它可以有这些类型的块的随机数(如代码、文本、图像等字段)。用户可以根据需要添加任意数量的块

此外,这些块(或字段)将作为博客文章的一部分,应按照用户创建的顺序保存在数据集中

我怎样才能做到这一点


谢谢您的时间。

一种非常简单的方法是添加所见即所得编辑器包

你有,而且,那是最受欢迎的

它们中的每一个的安装都非常简单明了,因此您不会有任何问题


你也可以在网站上查看你需要的一切。这是一个很好的地方,可以找到评论部分包、时事通讯等内容。

这可能适合您-

注意:我没有运行此代码。所有的代码都是我用stackoverflow写的。请原谅我的打字错误

models.py

from django.db import models

class Blog(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    // and more fields if you want

    def blog_field_exists(self):
        return self.blogfield_set.count() > 0

    def __str__(self):
        return self.title

class BlogField(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    image_url = models.URLField(blank=True, null=True) // blank means image is 
    // optional
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE)

    def __str__(self):
        return self.title
views.py

from django.views import generic
from .models import Blog

{...}

class BlogDetailView(generic.DetailView)
    model = Blog
    template_name = 'app/blog_detail.html'
url.py

from django.urls import path
from . import views

urlpatterns = [
    path('<int:pk>', views.BlogDetailView.as_view(), name='blog_view')
]
模板/app/blog_detail.html

{...} // previous code

{% for blog in blog_list %}
<h1>{{blog.title}}</h1>
<p>{{blog.body}}</p>
{% if blog.blog_field_exists %}
    {% for field in blog.blogfield_set.all %}
        <div style="margin: 1rem 0;">
            <hr>
            <h4>{{field.title}}</h4>
            <p>{{field.body}}</p>
            <img src="{{field.image_url}}" alt="{{field.title}}" />
            <hr>
        </div>
    {% endfor %}
{% endif %}
{% endfor %}
{…}//以前的代码
{blog_list%}中的blog为%
{{blog.title}
{{blog.body}

{%如果blog.blog_字段_存在%} {blog.blogfield_set.all%}
{{field.title} {{field.body}


{%endfor%} {%endif%} {%endfor%}
感谢您的建议,尽管我希望在使用纯Django无法实现的情况下最终使用它们。尽管如此,他们还是很有帮助的。再次感谢您,所以我建议您使用javascript并自行实现每个函数。祝你好运实际上javascript已经完成了,唯一的问题是如何将动态创建的数据(blog)保存到django模型中,然后保存它。这里的图像是什么-“admin.site.register(image)”,我无法回避这一部分,因为在模型中只有Blog和BlogField。而且我得到了
TypeError:“MediaDefiningClass”对象在这行
admin.site.register(BlogAdmin,BlogAdmin)
。很抱歉,我写错了admin.site.register(图像)。我现在把它拆了!现在试着运行它!我编辑并删除了我能找到的所有错误!如果您仍然遇到错误,请告诉我。谢谢您的帮助。这次我得到了
通用详细视图BlogDetailView必须在URLconf中用对象pk或slug调用。通用详细视图BlogDetailView必须在URLconf中用对象pk或slug调用。
{...} // previous code

{% for blog in blog_list %}
<h1>{{blog.title}}</h1>
<p>{{blog.body}}</p>
{% if blog.blog_field_exists %}
    {% for field in blog.blogfield_set.all %}
        <div style="margin: 1rem 0;">
            <hr>
            <h4>{{field.title}}</h4>
            <p>{{field.body}}</p>
            <img src="{{field.image_url}}" alt="{{field.title}}" />
            <hr>
        </div>
    {% endfor %}
{% endif %}
{% endfor %}