формат возвращаемого результата для .objects.filter (name__containe = data) без кавычек - PullRequest
0 голосов
/ 18 июня 2020

Я написал код django, в котором пользователь может искать слово в таблице базы данных. Моя проблема здесь в том, что когда я печатаю возвращенные результаты, они содержат цитаты. Как я могу их опустить?

def My_data_filed(request):
    form = data_filed_Form(request.POST or None)
    data = None
    download_form = None

    if request.method == 'POST':
        if form.is_valid():
            data_g = form.cleaned_data.get('g')
            data = list(data_filed.objects.filter(g__contains=data_g).values())
            print(data_filed.objects.all().values())
            download_form = data_filed_DownloadForm(initial={
                'g': data_g,
            })

    return render(request, 'search_report.html',
                  {
                      'form': form,
                      'data': data,
                      'download_form': download_form
                  })

Результат этого кода выглядит примерно так:

 'Creator': 'Davide'

Но я просто хочу иметь:

Davide

Что не так в моих усилиях?


Мой код для записи полученного результата в файл csv: (Поскольку из комментариев я понял, что эта часть тоже связана)

def resultDownload(request):
    try:
        assert request.method == 'POST'
        form = data_DownloadForm(request.POST)
        assert form.is_valid()
        data_g = form.cleaned_data.get('g')
        data = list(data_filed.objects.filter(data__contains=g).values_list())
    except AssertionError:
        error = 'Your request has some problems.'
        data = error

    attachment = 'SearchedReport.csv'
    response = HttpResponse(content_type='text/csv')

    response['Content-Disposition'] = 'attachment;filename="{}"'.format(attachment)
    response.write(data)
    return response

1 Ответ

0 голосов
/ 18 июня 2020

Каждый раз, когда вы запускаете набор запросов, например data_filed.objects.filter (g__contains = data_g) .values ​​(), он всегда возвращает вывод словарного типа с ключами и значениями. И когда вы передали этот результат в файл шаблона, используя:

return render(request, 'search_report.html',
                  {
                      'form': form,
                      'data': data,
                      'download_form': download_form
                  })

, он все еще находится в этом формате. Если вы хотите вывести только значение, вам нужно вывести его как таковое

{{ data.Creator }}

Это даст вам результат «Davide» без кавычек

...