2017-10-03 2 views
0

Ich habe ein Modell:Django hinzufügen Fieldset Legende Modelform

models.py

class Doc(models.Model): 
    series = models.CharField(max_length=50, help_text="2", blank=True, null=True, default=None) 
    number = models.CharField(max_length=50, help_text="2", blank=True, null=True, default=None) 
    name = models.CharField(max_length=150, help_text="3") 
    citizenship = models.ManyToManyField(Citizenship, help_text="4") 

forms.py

class DocForm(ModelForm): 

    class Meta: 
     model = Doc 
     fields = '__all__' 

Wie füge ich 2 Legenden für diese Felder? 1 für Serie und Nummer und 1 für Name und Staatsbürgerschaft?

Vorlage

{% for field in form %} 
<div class="form-group"> 
    <label for="{{ field.id_for_label }}" class="control-label col-md-3">{{ field.label }} 
     {% if field.field.required %}<span class="required"> * </span> {% endif %} 
    </label> 
    <div class="col-md-4"> 
     {{ field }} 
     {% if field.errors %} 
      {% for error in field.errors %} 
      <span id="{{ field.id_for_label }}-error" class="help-block help-block-error">{{ error }}</span> 
      {% endfor %} 
     {% endif %} 
    </div> 
</div> 
{% endfor %} 
+0

Soweit ich weiß, gibt es dafür noch keine Out-of-the-Box-Lösung. Vielleicht möchten Sie einen Blick auf diesen älteren Beitrag werfen: [Django und fieldset auf modelform] (https://stackoverflow.com/questions/518966/django-and-fieldsets-on-modelform) – Nrzonline

+0

Ich habe versucht, aber ich konnte nicht mach es nicht: \ ist es möglich, in BetterForm fields = '__all__' zu verwenden? –

Antwort

0

ich dies schreibe, vielleicht andere müssen es aswell:

Dies ist, wie ich es gemacht:

forms.py

class DocForm(BetterModelForm): 

    class Meta: 
     model = Doc 
     fields = '__all__' 

class Meta: 
    model = Doc 
    fieldsets = [ 
     ('main', 
     {'fields': ['name', 'citizenship'], 
      'legend': 'I. PERSONAL DATA'}), 

     ('main1', 
     {'fields': ['series', 'number'], 
      'legend': 'II. PROFESSIONAL IDENTIFICATION'})] 

Vorlage

{% for fieldset in form.fieldsets %} 
    <fieldset class="{{ fieldset.classes }}"> 
    {% if fieldset.legend %} 
     <legend>{{ fieldset.legend }}</legend> 
    {% endif %} 
    {% for field in fieldset %} 
    <div class="form-group"> 
     <label for="{{ field.id_for_label }}" class="control-label col-md-3">{{ field.label }} 
      {% if field.field.required %}<span class="required"> * </span> {% endif %} 
     </label> 
     <div class="col-md-4"> 
      {{ field }} 
      {% if field.errors %} 
       {% for error in field.errors %} 
       <span id="{{ field.id_for_label }}-error" class="help-block help-block-error">{{ error }}</span> 
       {% endfor %} 
      {% endif %} 
     </div> 
    </div> 
    {% endfor %} 
    </fieldset> 
{% endfor %}