[Django] Text output Widget in Formset

Django, Flask, Bottle, WSGI, CGI…
Antworten
senden9
User
Beiträge: 11
Registriert: Montag 23. Januar 2012, 11:36

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.
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

Indem du da einfach Text schreibst? So wie du es bei "Anzahl Tickets" auch gemacht hast?
Zeig doch mal den Quellcode bitte.
senden9
User
Beiträge: 11
Registriert: Montag 23. Januar 2012, 11:36

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.
senden9
User
Beiträge: 11
Registriert: Montag 23. Januar 2012, 11:36

Problem (wahrscheinlich) gelöst: Writing your own django widget
Antworten