Привязка к фильтрации данных с помощью queryset.filter () в Django. но он возвращает не то, что я ожидал. может кто меня поправит.
одна ячейка данных выглядит так, как показано ниже. (каждая строка разделена \ n)
- こちらは1行です。(0.57)\n
- こちらは2行です。(0.67)\n
- こちらは3行です。(0.77)\n
- こちらは4行です。(0.87)\n
- こちらは5行です。(0.697)
код, как показано ниже
queryset = queryset.filter(predicted_result__regex = r"\A.*", predicted_result__contains='(0.5') |\
queryset.filter(predicted_result__regex = r"\A.*", predicted_result__contains='(0.6') |\
queryset.filter(predicted_result__regex = r"\A.*", predicted_result__contains='(0.7')
вывод:
это будет учитывать все 5 строк, а не только первую строку.
цель:
только получаемые значения содержатся в первая строка между счетом (внутри скобок) От 0,5 до 0,8., все остальные строки следует опустить.
ожидаемый результат:
- こちらは1行です。(0.57)\n
его рабочий код. но я не этого хочу. Мне нужно получить только первую строчку
Опубликуйте код для двух ваших функций: predicted_result_contains и predicted_results_regex
Это не стандарт django.
predicted_result - это поле, а не функция
Справедливая. Зачем вы ИЛИ все это вместе? Это то, что вы хотите?
это стандарты. пожалуйста, обратитесь по ссылке ниже
Да. Я хочу сделать оба фильтра
С точки зрения дизайна, почему бы не сохранить номер как отдельное поле? Затем вы можете использовать его gt lte gte и т. д.






Проблема с вашим текущим запросом заключается в том, что ваша «отдельная ячейка данных» в настоящее время является строкой. Использование регулярного выражения для вычисления того, чего можно ожидать, а чего нет, по-прежнему вернет всю строку в True. Вы должны отделить «текст» от «плавающих» значений, чтобы запрос был более эффективным.
class Model(model):
descriptor = models.CharField()
value = models.FloatField()
Теперь вы можете самостоятельно запросить «значение».
Если вы не можете изменить модель по какой-либо причине, вам необходимо выполнить несколько запросов и использовать методы объединения / пересечения / различия.
fives_queryset = queryset.filter(predicted_result__contains'(0.5')
sixes_queryset = queryset.filter(predicted_result__contains'(0.6')
sevens_queryset = queryset.filter(predicted_result__contains'(0.7')
result_queryset = union(fives_queryset, sixes_queryset, sevens_queryset)
<< 'одиночная ячейка данных' в настоящее время является строкой >> это правильно. но менять модель - это не то, что мне нужно. Я не могу сменить модель. Нет другого способа сделать это
код, который вы опубликовали, делает то же самое. в любом случае, спасибо!
Не все ли они отфильтровывают истину? На самом деле вы не отрицаете плохие ценности ...