Я немного зациклился на том, как выполнить задачу, поэтому было интересно, сможет ли кто-нибудь помочь.Результаты фильтра Django
У меня есть эта модель и модель формы:
class Prefabrication(models.Model):
prefabrication_id = models.AutoField(primary_key=True)
matlist = models.ForeignKey(MatList, blank=True, null=True)
sizelist = models.ForeignKey(SizeList, blank=True, null=True)
quantity = models.IntegerField(blank=True, null=True)
workpack = models.ForeignKey(Workpack, blank=True, null=True)
code = models.CharField(max_length=50)
lineclass = models.ForeignKey(Lineclass, blank=True, null=True)
class CreateNewPrefabForm(forms.ModelForm):
class Meta:
model = Prefabrication
fields = ('prefabrication_id', 'matlist', 'sizelist',
'quantity', 'workpack', 'lineclass')
Это представляет собой форму я использую для сбора информации от пользователя.
Я пытаюсь получить определенное значение из таблицы поиска на основе matlist и sizelist значений, заданных пользователем.
Я попытался с помощью этого:
if request.method == 'POST':
if createprefabcons['newprefab'].is_valid():
item = Lineclass.objects.filter(itemname__icontains=createprefabcons['newprefab'].cleaned_data['matlist'],
dn1__icontains=createprefabcons['newprefab'].cleaned_data['sizelist'],
lineclassname__icontains=createprefabcons['newprefab'].cleaned_data['matlist'])
createprefabcons['newprefab'].cleaned_data['code'] = item
createprefabcons['newprefab'].save()
return HttpResponseRedirect('/')
с фильтрами, чтобы попытаться получить код пункта возвращенного фильтрации. Насколько я знаю, должен быть только одним элементом, возвращенным из поиска фильтра, и этот элемент будет иметь код, который я хочу добавить после того, как пользователь дал данные для поиска.
Все хранится в дБ, но поле кода пуст, так что либо я делаю что-то неправильно, либо нет значения, которое соответствует, если фильтрация выполняется правильно, это должно быть совпадение. Может кто-нибудь, пожалуйста, дайте совет.
Большое спасибо.
Благодарим за помощь! После этого метода get() возвратил 2 элемента, поэтому я снова попробовал фильтр, используя item = Lineclass.objects.filter() [0], чтобы увидеть, что возвращается, и, кажется, возвращает только первый столбец таблицы , lineclass_id, который равен 11011, но не всей строке. То же самое, если я попытаюсь использовать Lineclass.objects.filter() [1]. –