Django Crispy无序输入

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

我正在使用django-crispy_forms构建一些表单,我需要它们处于某个特定的顺序(特别是我在forms.py中的字段上建立的顺序)。

forms.朋友:

class RegistroRelatorio(forms.ModelForm):
    class Meta:
       model = RelatorioVendas

       fields = {"razao_social","codigo_interno","nome_fantasia","endereco","bairro","uf","telefones","cnpj","fundacao",
              "negocios","cidades_negocios","c1_nome","c1_whats","c1_email","c1_cargo","c1_comunicacao","c1_preferencia"}

views.朋友

from django.shortcuts import render
from .models import RelatorioVendas
from django.http import HttpResponse
from .forms import RegistroRelatorio

# Create your views here.
def novo_relatorio(request):

form = RegistroRelatorio(request.POST or None)

if form.is_valid():
    form.save()
    return HttpResponse('Ok...')

return render(request,'river/novo_relatorio.html',{'form':form})

HTML:

{% extends 'river/base.html' %}

{% load crispy_forms_tags %}

{% block content %}

        <h3>Novo Relatorio</h3>
        <form method="post" >

            {% csrf_token %}
            {{form | crispy}}

            <button type="submit">Ok</button>
        </form>

{% endblock %}

我尝试在这个类中使用label_order,但是当我使用crispy表单时它停止工作......

我甚至尝试使用crispy库中的Layout方法。

django python-3.x django-crispy-forms
2个回答
0
投票

在forms.py中使用'list'而不是'set'作为fields

class RegistroRelatorio(forms.ModelForm):
    class Meta:
        model = RelatorioVendas

        fields = ["razao_social", "codigo_interno", "nome_fantasia", "endereco", "bairro", "uf", "telefones", "cnpj",
                  "fundacao", "negocios", "cidades_negocios", "c1_nome", "c1_whats", "c1_email", "c1_cargo",
                  "c1_comunicacao", "c1_preferencia"]

根据documentation

集合是无序集合,没有重复元素。


0
投票

我没有看到任何问题,以便按照您提供的顺序渲染字段。显示您的HTML和视图。

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