Допустим, у нас есть базовая модель Contact
и Call
журнала:настройка Trouble формы
Update: Кажется, мой первоначальный вопрос не предоставил достаточно подробно, чтобы объяснить мою проблему, я обновил его с более полный пример и подробности о том, что я хочу.
# Models.py
class Contact(model.Models):
First = ...
Last = ...
Phone = ...
class Log(model.Models):
contact = fields.Foreignkey(Contact)
date = ...
notes = ...
# urls.py
url(r'^logcall/(?P<contact_id>\d+)/$', 'myapp.views.log_call',name='log_call'),
# views.py
def log_call(request, contact_id):
formset = modelform_factory(Log)
form = formset(queryset=Log.objects.none(),initial={'contact':contact_id})
if request.method == 'POST':
form = formset(request.POST,request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect('/some/place')
else:
form = formset(queryset=Log.objects.none(), initial = {'contact':respondent_id,})
return render_to_response('myform.html', {'formset':form,})
# myform.html
<form method="post" action="">
{{ formset.management_form }}
{% for form in formset %}
{{ form.id }}
{{ form.callid.as_hidden }}
{{ form.contact.as_hidden }}
{{ form.date }}
{{ form.notes }}
{% endfor %}
<button>Submit</button>
</form>
Что я получаю:
<form method="post" action="">
<select id="id_form-0-contact" name="form-0-contact">
<option value="" selected="selected">---------</option>
<option value="1011">1011</option>
<option value="31736">31736</option>
<option value="19729">19729</option>
<option value="8818">8818</option>
<option value="19731">19731</option>
<option value="1468">1468</option>
... and so on
...
<button>Submit</button>
</form>
То, что я хочу от этого заключается в следующем:
<form method="post" action="">
<input type="hidden" id="id_form-0-contact" name="form-0-contact" value="contact_id" />
...
<button>Submit</button>
</form>
Таким образом, каждый раз, когда я загрузить страницу - она вызывает все данные отношения, когда мне нужно только для включения скрытого значения для контакта идентификатор идентифицируется на основе значения, переданного из URL-адреса.
Почему? Какой смысл в форме, которая содержит только скрытое значение, полученное вами из URL-адреса?Чего вы на самом деле пытаетесь достичь? –
Я не хочу, чтобы отношение внешнего ключа загружалось каждый раз, когда я использую форму. –
Но это не то, что я спросил. Зачем вам это вообще *? Параметр исходит из URL-адреса, вы помещаете его в форму, а затем вы получаете его снова в представлении *, которое уже содержит параметр из URL *. В чем смысл? –