передать переменные из шаблона в представления в Django - PullRequest
0 голосов
/ 27 марта 2019

При нажатии на каждое местоположение я должен получить оттуда текстовый файл. Мне нужно передать эти места в views.py для рендеринга файлов.

шаблон:

<script>
if(data.columns[j] == "outputFilePath"){
    var op = JSON.stringify(data.tableData[i][j]);
    op = op.substring(1, op.length-1)
    row.append("<td><a href='/dhl/outputDir'>" + op + "</a></td>")
}
</script>

вид. ру:

def outputDir(request,location):
    text_data = open("location/stdout", "rb").read()
    return HttpResponse(text_data, content_type="text/plain")

urls.py

url(r'^dhl/outputDir',views.outputDir),

1 Ответ

0 голосов
/ 27 марта 2019

Вы можете использовать базовые теги шаблона и функциональность представления по умолчанию, передавая параметры.

Однако то, что вы пытаетесь достичь, сделает представление широко доступным для всех, чтобы получить доступ к папкам в вашем приложении, введя любойпапку они хотят.Вы можете добавить список разрешенных местоположений, который я сделал в своем решении ниже.

Шаблон

if(data.columns[j] == "outputFilePath"){
    var op = JSON.stringify(data.tableData[i][j]);
    op = op.substring(1, op.length-1)
    row.append("<td><a href='/dhl/outputDir/" + op + "'>" + op + "</a></td>")
}

views.py

def outputDir(request, location):
    # Make sure to check if the location is in the list of allowed locations
    if location in allowed_locations:
        text_data = open(location + "/stdout", "rb").read()
        return HttpResponse(text_data, content_type="text/plain")
    else:
        return PermissionDenied

Вам также необходимо добавить параметр в URL:

urls.py

url(r'^dhl/outputDir/(?P<location>\w+)', views.outputDir),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...