如何将django表单按顺序排列?

如何将django表单按顺序排列?,django,summernote,Django,Summernote,我试图将summernote添加到我的网站中,但它似乎把我的表单弄乱了 我希望标题是第一个,图片url是第二个,文本是最后一个 以下是问题的图像: 表格 class ProjectForm(forms.ModelForm): class Meta: model = ProjectPost fields = {'title', 'image_url', 'text'} widgets = { 'text': Sum

我试图将summernote添加到我的网站中,但它似乎把我的表单弄乱了

我希望标题是第一个,图片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
型号

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

如果表单.py中的字段顺序正确,则应检查html

<form>
    {{form.text}}
    {{form.image_url}}
    {{form.title}}
</form>

{{form.text}
{{form.image_url}
{{form.title}
并将其替换为:

<form>
    {{form.title}}
    {{form.image_url}}
    {{form.text}}
</form>

{{form.title}
{{form.image_url}
{{form.text}

如果表单.py中的字段顺序正确,则应检查html

<form>
    {{form.text}}
    {{form.image_url}}
    {{form.title}}
</form>

{{form.text}
{{form.image_url}
{{form.title}
并将其替换为:

<form>
    {{form.title}}
    {{form.image_url}}
    {{form.text}}
</form>

{{form.title}
{{form.image_url}
{{form.text}

字段按照在元类的
字段
属性中定义的顺序呈现

出于某种原因,您将这些字段定义为一个集合
{'title','image\u url','text'}
,这是一个无序的集合,这就是为什么您的字段没有按您喜欢的方式呈现

将fields属性更改为有序集合(如列表或元组),您的问题应该得到解决:

class ProjectForm(forms.ModelForm):

class Meta:
    model = ProjectPost
    fields = ['title', 'image_url', 'text']
    widgets = {
        'text': SummernoteInplaceWidget(),
    }

字段按照在元类的
字段
属性中定义的顺序呈现

出于某种原因,您将这些字段定义为一个集合
{'title','image\u url','text'}
,这是一个无序的集合,这就是为什么您的字段没有按您喜欢的方式呈现

将fields属性更改为有序集合(如列表或元组),您的问题应该得到解决:

class ProjectForm(forms.ModelForm):

class Meta:
    model = ProjectPost
    fields = ['title', 'image_url', 'text']
    widgets = {
        'text': SummernoteInplaceWidget(),
    }