Я пытался вставить данные в базу данных, используя поле расширенного текста в Django, используя Django Поле расширенного текста в его нынешнем виде. Я смог заставить это поле работать моя форма не проблема, но когда я пытаюсь связать ее с моей моделью, используя ModelFrom со всеми другими столбцами, мне не везет. Эта форма находится на панели, полностью отделенной от панели администратора, в которой она отлично работает.
Моя модель настроена на прием формы.
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 выглядит следующим образом:
класс 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)
при правильном отображении других полей в окне from. я рендерил их в своем шаблоне так:
<div class="col-lg-3">
<div class="form-group">
{{ vulnform.CVE }}
</div>
</div>
и пытаюсь отобразить форматированное текстовое поле примерно так:
{{ vulnform.summary }}
У меня они работали раньше, но когда данные находится в отдельном классе от всех других столбцов в formform.py, и я боялся, что при попытке сохранить их из запроса на публикацию они будут сохранены в разных строках базы данных.
Когда я поместите поле ввода в мой шаблон HTML, оно отображает текстовое поле в HTML, но, похоже, не загружает JS для поля расширенного текста.
<textarea name="summary" cols="40" rows="10" class="djrichtextfield" id="id_summary"></textarea>
Я пытался связать javascript со страницей вручную, но это не сработало.