Django-ckeditor将内容显示为文本区域

0tdrvxhp  于 2023-02-10  发布在  Go
关注(0)|答案(1)|浏览(92)

我现在正在使用django ckeditor,但是我无法显示那些可以正常保存的内容,这些内容显示在管理面板中,内容总是显示为textarea x1c 0d1x
正如你在图片中看到的,编辑器工作正常,如果我进入管理面板一切正常,但如果我想显示“body”({{ form.body|safe}}),则它将仅显示HTML代码的文本区域。models.py

class Stage(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    game_id = models.ForeignKey(Game,
                                  on_delete=models.CASCADE)
    name = models.CharField(max_length=128)
    sequence = models.IntegerField(null=False)
    body = RichTextUploadingField(config_name='LeftFields', blank=True, null=True)
    
    def get_questions(self):
        return Question.objects.filter(stage_id = self.id)

    def __str__(self):
        return str(self.name)

forms.py

class StageForm(ModelForm):
    class Meta:
        model = Stage
        fields = ['body','name']
        widgets = {
        'name': TextInput(attrs={
                'class': "left_input",
                'style': "width: 69.3%;",
            }),
        }

views.py

@login_required(login_url='/signin')
@user_passes_test(lambda u: u.is_staff)
def edit(request, gameid,id):
        stage = Stage.objects.get(pk=id)
        if request.method == 'POST':
            form = StageForm(request.POST, instance=stage)
            if form.is_valid():
                form.save()
            return redirect('/edit/' + gameid + '/' + id)
        form = StageForm(instance=stage)
        return render(request, "homeSuperuser/edit_stage.html", {'stage': stage, 'form': form,'gameid':gameid})

edit_stage.html

<!doctype html>
<html>
  <head> {% load static %}
    <link rel="stylesheet" href="{% static 'css/edit_pages.css' %}" />
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
    <script type="text/javascript" src="{% static 'js/edit.js' %}"></script>
  </head>
  <body>
    <div class="row" id="mainDIV">
      <form id="main" method="post" action="{{ request.path }}"> 
      {% csrf_token %} 
      <div class="divs">
        <a>Název: </a>
         {{ form.name}}
        </div>
        <div class="divs"><a>Kontent:</a>
          {{ form.media }}
          {{ form.body}}
        </div>
        <div class="div_cent"><input type="submit" value="Uložit" class="subm" /></div>
      </form>
    </div>
    {{ form.body|safe}}
  </body>
</html>
goqiplq2

goqiplq21#

body是字段本身,因此包括HTML文本区域标记。
代替

{{ form.body|safe}}

尝试

{{ form.body.value|safe}}

相关问题