В настоящее время у меня есть приложение django, которое я могу выполнить для поиска моей базы данных, которая заполняет таблицу html из запроса.Загрузите файл text/csv из приложения django, который заполняет таблицу HTML из запроса базы данных
Мой app_home.html выглядит следующим образом:
{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
<title>RESULTS APP</title>
</head>
<form method="get" action="results/">
<div class="SearchBar"><input type="text" name="lab_number"></div>
<input class='input_button' type='submit'>
</form>
<body></body>
</html>
Это мой views.py:
def from_samrun(request):
if request.GET:
lab_query = request.GET['lab_number']
var_list = VarSamRun.objects.filter(sample=lab_query)
if var_list:
return render(request, 'results/varlist.html', {'var_list': var_list})
else:
return render(request, 'results/varlist.html', {'query': [sam_query]})
else:
return render(request, 'results/varlist.html' {'error': 'Error'})
который берет меня к шаблону varlist.html:
{% load staticfiles %}
<!DOCTYPE html>
<html>
<head><title>Results page</title></head>
<body>
<div>
{% if var_list %}
{% for v in var_list %}
<tr>
<td class='varsrow' width='100'>{{v.sample}}</td>
<td class='varsrow' width='100'>{{v.gene}}</td>
<td class='varsrow' width='200'>{{v.variant}}</td>
<td class='varsrow' width='150'>{{v.cds}}</td>
<td class='varsrow' width='150'>{{v.protein}}</td>
<td class='varsrow' width='200'>{{v.consequence}}</td>
<td class='varsrow' width='200'>{{v.run}}</td>
<td class='varsrow' width='300'>{{v.annotation}}</td>
</tr>
{% endfor %}
{% elif query %}
<h5>Search using: "
{% for q in query %}
{{q}}
{% endfor %}
" did not return any results</h5>
{% else %}
<h5>{{annotation}}</h5>
{% endif %}
</table>
</div>
</body>
</html>
мои url:
urlpatterns = [
url(r'^results/$', views.results_app, name='results_app'),
url(r'results/varlist/$', views.from_samrun, name='from_samrun'),
Я хочу иметь кнопку загрузки на моей странице varlist.html, чтобы при отображении таблицы пользователь мог выбрать загрузку - экспорт в файл csv. Я отдаю себе отчет в том, как записать данные в файл CSV и загрузить его с помощью другого вида:
def download_view(request):
response = HttpResponse('')
response['Content-Disposition'] = 'attachment; filename=file.csv'
writer = csv.writer(response, dialect=csv.excel)
writer.writerow(some_random_data_list)
return response
и добавить кнопку формы для загрузки на мою страницу varlist.html:
<form action ='download' method='POST'>
{% csrf_token %}
<input type='hidden'>
<input type='submit' value='Download'>
</form>
, но у меня нет идеи, как передать информацию с моего первого взгляда в мое представление загрузки, или передать информацию таблицы html как объект в мое представление загрузки. (я попытался передать {{var_list}} как значение в этой форме html, извлекая из него данные и создав новый объект запроса, но это не работает для каждой таблицы, поскольку они слишком большие.
Есть ли ? способ передать свой объект var_list с первого взгляда, чтобы загрузить вид Как я могу идти об этом
Благодаря
Вы можете поставить lab_query в скрытом поле вашей формы на varlist.html, и запустить VarSamRun.objects.filter (sample = lab_query) снова в вашем представлении загрузки –