我正在尝试将summernote添加到我的网站上,但似乎它搞砸了我的表单。
我希望标题是第一个,image_url是第二个,文本是最后一个。
这是问题的图像:
表单
class ProjectForm(forms.ModelForm):
class Meta:
model = ProjectPost
fields = {'title', 'image_url', 'text'}
widgets = {
'text': SummernoteInplaceWidget(),
}
模型
class ProjectPost(models.Model):
title = models.CharField(max_length=120)
author = models.ForeignKey('auth.User')
image_url = models.CharField(max_length=1000, blank=True, null=True)
text = models.TextField()
def __str__(self):
return self.title
答案 0 :(得分:2)
字段按照在元类的fields
属性中定义的顺序呈现。
出于某种原因,您已将这些字段定义为 set {'title', 'image_url', 'text'}
这是一个无序集合,这就是您的字段无法随意渲染的原因。
将fields属性更改为有序集合,如列表或元组,您的问题应该解决:
class ProjectForm(forms.ModelForm):
class Meta:
model = ProjectPost
fields = ['title', 'image_url', 'text']
widgets = {
'text': SummernoteInplaceWidget(),
}
答案 1 :(得分:0)
如果 form.py 中的字段顺序正确,则应检查 html :
<form>
{{form.text}}
{{form.image_url}}
{{form.title}}
</form>
并将其替换为:
<form>
{{form.title}}
{{form.image_url}}
{{form.text}}
</form>