如何在Djnago中使用ModelForm插入RTF文本框数据?

问题描述 投票:0回答:1

我一直在尝试使用django rich text field使用djnago中的富文本字段将数据插入数据库中因为它能够使该字段在我的表单上正常工作,但是当我尝试使用ModelFrom和其他所有链接将其链接到我的模型时,我却没有运气。[from]位于完全独立于管理面板的面板上,在该面板上它可以正常工作。

我的模型被设置为接受表格。

class Vulnerability(models.Model):
title = models.CharField(max_length=200, null=True)
CVSS = models.DecimalField(max_digits=2, decimal_places=1, null=True)
summary = RichTextField(blank=True)
remediation = RichTextField(blank=True)
impact = RichTextField(blank=True)
References = RichTextField(blank=True)
CVE = models.CharField(max_length=30, null=True)
Software = models.CharField(max_length=100, null=True)
method = RichTextField(blank=True)
Tags = models.CharField(null=True, max_length=200)

我的forms.py为该字段设置为使用正确的小部件(这可能是问题所在)我不完全确定如何以这种方式设置富文本字段,但我在文档中找不到它。

class vulnform(ModelForm):
class Meta:
    model = Vulnerability
    fields = ['Tags', 'CVSS', 'CVE', 'Software', 'title','summary']
    widgets = {
        'title': TextInput(attrs={'class': 'form-control'}),
        'CVE': TextInput(attrs={'class': 'form-control'}),
        'Software': TextInput(attrs={'class': 'form-control'}),
        'Tags': TextInput(attrs={'class': 'form-control'}),
        'CVSS': NumberInput(attrs={'class': 'form-control','max':10,'min':0}),
        'summary' : RichTextWidget()

    }

我的观点。 py看起来像这样:

class Dashboard(TemplateView):template_name ='vuln_pages / Create_Vuln.html'

def get(self, request):
    Outform = {
                # 'Remediation': Remediation,
                 #'References': References,
                 #'Impact': impactform,
                 'vulnform': vulnform,

                 }
    return render(request, self.template_name, Outform)

在显示时,其他字段将正确渲染。我像这样在我的模板中渲染它们:

                            <div class="col-lg-3">
                            <div class="form-group">
                                {{ vulnform.CVE }}
                            </div>
                        </div>

并且正在尝试像这样渲染富文本框

                                {{ vulnform.summary }}

我以前曾让它们工作过,但是当数据与form.py中所有其他列位于单独的类中时,我担心当我尝试从发布请求中保存它们时,它们会保存在不同的行中在数据库中。

当我将输入框放入模板html时,它在html中呈现了一个文本框,但似乎并未为富文本框加载任何JS。

<textarea name="summary" cols="40" rows="10" class="djrichtextfield" id="id_summary"></textarea>

我已经尝试将Java脚本手动链接到页面,但是没有用。

我一直在尝试使用django富文本字段在djnago中使用富文本字段将数据插入数据库,因为它能够使该字段在我的表单上正常工作,但是当我尝试时...

python django jinja2 richtextbox
1个回答
0
投票

通常,您需要在表单模板的顶部添加{{ vulnform.media }}之类的内容。在此插入所需的CSS和JS以正确呈现表单。我尝试查看该特定的回购协议,但令人惊讶的是它并不能解释这一点。

© www.soinside.com 2019 - 2024. All rights reserved.