вставил значение в модель с помощью SelectWithPop, но страница не обновляется, пока я не перезапущу сервер - PullRequest
0 голосов
/ 31 мая 2011

Итак, у меня есть форма с SelectWithPop.Таким образом, пользователь может выбрать переменную или добавить еще одну.Открыта новая страница для ввода данных пользователем.

Моя проблема в том, что я могу вставить новую переменную в модель, но когда я возвращаюсь на страницу, чтобы выбрать значение, новое значениене отображается, пока я не перезапущу сервер.
Это нормальное поведение или я что-то не так сделал?
Если это так, есть ли способ решить эту проблему?

Вот мои взгляды:

def add(request, field):
    return handlePopAdd(request, HospitalForm, 'hospital_name')

def handlePopAdd(request, addForm, field):
    if request.method == "POST":
        form = addForm(request.POST)
        if form.is_valid():
            try:
                newObject = form.save()
            except forms.ValidationError, error:
                newObject = None
            if newObject:
               return HttpResponseRedirect(reverse('form', args=['clinical']))
    else:
        form = addForm()
    return render_to_response("popadd.html", { 'form': form })

формы:

class CheckPatForm(forms.Form):
    pat = forms.IntegerField(label="Paciente")

    _names = list(Hospital.objects.values_list('hospital_id', 'hospital_name'))
    _names.append(('',''))

    hosp = forms.ChoiceField(_names, widget=SelectWithPop(), label="Hospital", required=False)
    proc = forms.IntegerField(label="Processo", required=False)

class HospitalForm(forms.ModelForm):
    class Meta:
        model = Hospital                                        

шаблоны добавления:

<a
href="/SIAM-TB/insert/form/add/{{ field }}"
class="add-another"
id="add_id_{{ field }}">
    <img src="http://rome/SIAM-TB/admin_media/img/admin/icon_addlink.gif" 
         width="10" height="10" alt="Add Another"/>
</a>

1 Ответ

0 голосов
/ 31 мая 2011

поместите код, который получает набор запросов больницы, в формы init. например

....

hosp = forms.ChoiceField(widget=SelectWithPop(), label="Hospital", required=False)

def __init__(self, *args, **kwargs):
    super(CheckPatForm, self).__init__(*args, **kwargs)
    names = list(Hospital.objects.values_list('hospital_id', 'hospital_name'))
    names.append(('',''))
    self.fields['hosp'].choices = names
...