Mam następujący szablon django (http: // IP / admin / start / jest przypisany do hipotetycznego widoku zwanego widokiem):
{% for source in sources %}
<tr>
<td>{{ source }}</td>
<td>
<form action="/admin/start/" method="post">
{% csrf_token %}
<input type="hidden" name="{{ source.title }}">
<input type="submit" value="Start" class="btn btn-primary">
</form>
</td>
</tr>
{% endfor %}
sources
jest objects.all()
modelem Django, do którego odwołuje się widok. Za każdym razem, gdy zostanie kliknięty element wejściowy przesyłania „Start”, chcę, aby widok „start” używał {{ source.title}}
danych w funkcji przed zwróceniem renderowanej strony. Jak zebrać informacje przesłane POST (w tym przypadku w ukrytych danych wejściowych) do zmiennych Pythona?
input
i tylko a,{{ form }}
a mój formularz ma tylko jedno pole tekstowe (charfield). jak mogę uzyskać dostęp do jego danych?name
atrybut będzie nazwą właściwości, do której przypisałeś charfield. Jeśli nie jesteś w 100%, naciśnij F12 w przeglądarce z załadowanym formularzem i wybierz element wejściowy, aby zobaczyć, co Django nadał atrybutowi nazwy.Jeśli chcesz coś zrobić w interfejsie użytkownika, możesz odpowiedzieć na zdarzenie dotyczące przesłania formularza. Jeśli piszesz tylko do admin / start, możesz uzyskać dostęp do zmiennych postu w swoim widoku poprzez obiekt żądania. request.POST, który jest słownikiem zmiennych pocztowych
źródło
W przypadku formularzy django możesz to zrobić;
form = UserLoginForm(data=request.POST) #getting the whole data from the user. user = form.save() #saving the details obtained from the user. username = user.cleaned_data.get("username") #where "username" in parenthesis is the name of the Charfield (the variale name i.e, username = forms.Charfield(max_length=64))
źródło