#django #formset
#django #набор форм
Вопрос:
Я использую фабрику наборов форм Django, и представление обновления не заполняет подчиненную форму необработанным SQL-запросом и возвращает объект ‘RawQuerySet’, у которого нет атрибута ‘ordered’ ошибка. запрос объекта настроен нормально, но необработанный SQL-запрос возвращает эту ошибку.
'''python
formset = modelformset_factory(model=GiftVoucherSub,
form=GiftVoucherSubForm,
extra=0,
can_delete=True,
min_num=1,
validate_min=True,
)
formset = formset(request.POST or None,
queryset=queryset,
# initial=initial,
prefix='rlt_giftvoucher',
)'''
Комментарии:
1. где ваш код?
2. я добавил код, который набор запросов получен из необработанного SQL-запроса.
Ответ №1:
исправлено путем добавления дополнительного поля в forms.py и просматривает набор запросов с помощью django object. passanger name с автозаполнением.
views
queryset = GiftVoucherSub.objects.filter(main_id=id, is_deleted=False).order_by('id')
forms
class GiftVoucherSubForm(forms.ModelForm):
passanger_id = forms.CharField(max_length=30,
required=False,
widget=forms.HiddenInput()
)
passanger_name = forms.CharField(widget=forms.TextInput(attrs={
# 'id': 'form_fatura_cari_isim',
'class': 'formset-field table-condensed clearable',
'required': 'True',
'autocomplete': 'off',
'type': 'search',
'onfocus': 'fn_search_passanger(this.id)',
}
)
)
class Meta:
model = GiftVoucherSub
fields = [
'id',
'main_request_type',
'sub_request_type',
'passanger_id',
'passanger_name',
'is_deleted',
]
def __init__(self, *args, **kwargs):
super(GiftVoucherSubForm, self).__init__(*args, **kwargs)
if self.instance.passanger_id:
extra_value = BoYolcuListesi.objects.get(usertableid=self.instance.passanger_id)
self.fields['passanger_name'].initial = extra_value.isim
self.helper = FormHelper()
self.helper.form_tag = True
for field in self.fields:
self.fields[field].widget.attrs.update({'class': 'formset-field table-condensed'})
self.fields[field].label = ''