Django: Показва име на формуляр в шаблон с префикс

От известно време се оглеждам за отговор на това без успех. По принцип искам да получа името на поле на формуляр с включени префикс. Някой знае ли как се прави това?

Пример:

Да кажем, че създам формуляр във views.py и включа префикс като този:

myform = SomeForm(prefix="prefix")

и след това го предайте на моя шаблон. Ако след това получа директен достъп до поле на формуляр в шаблона, аз от {{ myform.username }} получавам нещо подобно (забележете, че префиксът е включен):

<select id="id_prefix-username" name="prefix-username"> ...

Ако обаче искам ръчно да създам маркера на формуляра и просто да вмъкна името, тогава не получавам префикса с него:

<input name="{{ myform.username.name }}">

ще генерира:

<input name="username">

Забележете как сега липсва префиксът. Сега мога да го направя така, за да постигна същия резултат:

 <input name="{{ myform.prefix }}-{{ myform.username.name }}">

Но трябва да има вграден начин за това?


person Anton    schedule 08.08.2013    source източник
comment
{{ myform.prefix }}-{{ myform.username.name }} ми изглежда добре.   -  person Adrián    schedule 08.08.2013
comment
Създайте етикет за персонализиран шаблон за него.   -  person dan-klasson    schedule 08.08.2013
comment
Не. Няма вграден начин за това. Ще трябва да напишете персонализиран етикет, както каза @dan-klasson, или просто да добавите префикса ръчно, както сте направили.   -  person Brandon    schedule 08.08.2013


Отговори (1)


Вместо това можете да използвате html_name:

<input name="{{ myform.username.html_name }}">

Това трябва да добави префикса, ако е необходимо

person John Montgomery    schedule 31.01.2014