Seite 1 von 1

[Django] Text output Widget in Formset

Verfasst: Dienstag 27. November 2012, 11:05
von senden9
Hallo!
Ich habe mit einem Formset eine Art Tabelle erstellt. In dieser Tabelle werden Daten abgefragt. Jetzt möchte ich vor den jeweiligen Datensatz einen Text anzeigen, in meinem Fall ein Name. Wie kann ich das bewerkstelligen? Ich dachte an ein Dummywidget welches nur Text ausgibt. Ist soetwas möglich? Wie würdet ihr dieses Problem lösen?
Bild Der Text links ist noch nicht vorhanden.

Re: [Django] Text output Widget in Formset

Verfasst: Dienstag 27. November 2012, 11:15
von sparrow
Indem du da einfach Text schreibst? So wie du es bei "Anzahl Tickets" auch gemacht hast?
Zeig doch mal den Quellcode bitte.

Re: [Django] Text output Widget in Formset

Verfasst: Dienstag 27. November 2012, 11:48
von senden9
Template

Code: Alles auswählen

...
<form method="post" action=""> {% csrf_token %}
    {{ formset.management_form }}
{{ formset.non_form_errors.as_ul }}
<table id="formset" class="form">
{% for form in formset.forms %}
{% if forloop.first %}
  <thead><tr>
    {% for field in form.visible_fields %}
    <th>{{ field.label}}</th>
    {% endfor %}
  </tr></thead>
  {% endif %}
  <tr>
  {% for field in form.visible_fields %}
    <td>
    {% if forloop.first %}
    {# Include the hidden fields in the form #}
      {% for hidden in form.hidden_fields %}
      {{ hidden }}
      {% endfor %}
    {% endif %}
      {{ field.errors.as_ul }}
      {{ field }}
    </td>
  {% endfor %}
  </tr>
{% endfor %}
</table>
<input type="submit" value="Absenden" />
</form>
...
View:

Code: Alles auswählen

...
from ticketmanager.forms import teilnahme_user, UploadFileForm, schuelerManuellForm
from ticketmanager.models import Event, User_Event, csv_import, erstelle_rechnungsnummer
...
def personen_eintragen(request, event_id_local, klasse_id_local):
    uberschrift = "Personen manuell eintragen"
    klasse_local = get_object_or_404(Klasse, pk=klasse_id_local)
    schueler=UserProfile.objects.filter(klasse = klasse_local)
    UserFormSet = formset_factory(schuelerManuellForm, extra=0)
    if request.method == 'POST':
        formset = UserFormSet(request.POST, request.FILES)
        if formset.is_valid():
            for datensatz in formset.cleaned_data:
               ## Auswerten...
    else: #wenn das Formular nicht ausgefüllt wurde schreibe die Daten aus der DB rein.
        initial_data=[]
        for schueler_l in schueler:
            teilnehmer, created = User_Event.objects.get_or_create(event_id = Event.objects.get(pk=event_id_local), user_id = schueler_l.user , defaults={'rechnungsnummer': erstelle_rechnungsnummer() })
            initial_data.append({"schuelerID": schueler_l.pk,
                                 "teilnahme": teilnehmer.teilnahme,
                                 "bar_gezahlt": teilnehmer.bar_gezahlt})
        formset = UserFormSet(initial=initial_data)
    return render_to_response('ticketmanager/schueler_eintragen.html',
                              {'formset': formset,
                               'uberschrift': uberschrift},
                              context_instance=RequestContext(request))
...
Ich möchte den Namen allerdings nicht in einem TextInput-Widget anzeigen sondern als Text, eine Art PlainOutput-Widget.

Re: [Django] Text output Widget in Formset

Verfasst: Mittwoch 28. November 2012, 11:02
von senden9
Problem (wahrscheinlich) gelöst: Writing your own django widget