2015-03-11 14 views
5

Zastanawiam się, w jaki sposób można przypisać wartość do pola formularza django w szablonie.Jak przypisać wartość do pola formularza django w szablonie?

Wiem, że istnieją inne sposoby na przypisanie wartości początkowej w django, ale muszę przypisać wartość w szablonie, ponieważ zmienna jest obecna tylko w szablonie.

Sposobem na to zrobić z normalnej postaci html byłoby to:

{% for thing in things %} 
    <p> {{ thing.content }} </p> 
    <!-- Reply form --> 
    <form> 
    <input type="hidden" name="replyingto" value="{{ thing.number }}"> 
    <input type="text" label="Reply"></input> 
    </form> 
{% endfor %} 

Jednak muszę skorzystać z formularza django.

również wiedzieć, że ja to sposób przypisać etykietę pola w szablonie tak:

{{ form.non_field_errors }} 
{{ form.field.errors }} 
    <label for="{{ form.field.id_for_label }}"> field </label> 
{{ form.field }} 

Więc moje pytanie jest w zasadzie jak można zabrać na przykładzie powyżej, ale zamiast przypisywania etykieta, przypisz wartość.


Znalazłem rozwiązanie!

To, co zrobiłem, to ręczne wpisanie html jako Daniel i przypisanie wartości w ten sposób.

Dla każdego, kto zastanawia się, jak to zrobiłem, jest to example.

+0

ja nie rozumiem, co jest złego kodu masz. Ręczne utworzenie kodu HTML nie uniemożliwia korzystania z formularza Django w widoku. –

+0

Przepraszam, ale nie rozumiem. Czy mogę użyć formularza html zamiast formularza django i przeanalizować te wartości w widoku? –

+0

Jeśli chcesz, ale powiedziałeś, że chcesz użyć formularza Django. –

Odpowiedz

1

W powłoce orzecha NIE robisz tego w HTML (chyba że chcesz ręcznie tworzyć formularz, jak to opisałeś), robisz to w Pythonie.

w forms.py można ustawić właściwość initial, aby zdefiniować domyślną wartość pola.

ex: name = forms.CharField(initial='class')

lub dynamicznie w views.py można użyć dict.

ex: f = CommentForm(initial={'name': 'instance'})

Rozszerzony referencyjny: https://docs.djangoproject.com/en/1.10/ref/forms/api/#s-dynamic-initial-values

Powiązane problemy