如何从视图.py在Django?

2024-03-29 15:27:50 发布

您现在位置:Python中文网/ 问答频道 /正文

如何从视图.py在Django?你知道吗

你知道吗网址.py你知道吗

urlpatterns = [
    url(r'^$', views.index),
    url(r'^report/(?P<extension>\d+)/$', views.report),
]

你知道吗视图.py你知道吗

def report(request, extension):

    """
        I will do some logic here. I need the extension variable for 
        database purposes.
      EX: 
        my_array = Report.objects.fetching_reports(extension='3')
    """

    return render(request, 'report.html’)

如果你注意到分机,我通过了3。每个扩展都有自己的数据。但是,我希望它们呈现在同一个html模板上。我将从扩展1开始渲染,一直渲染到12,然后返回到1。假设缺少扩展名4,它将被重定向到扩展名5。这些扩展名将来自我的数据库。你知道吗

Example:

…/report/1/
…/report/2/
…/report/3/    ## will skip 4 if not available 
…/report/5/
…/report/6/    ## and so on..

每个扩展将呈现相同的HMTL模板。现在,如果我直接在浏览器中键入URL模式,我就可以成功地呈现这些报告。有没有办法连续调用report(),比如说每15秒调用一次?或者我应该有不同的方法?你知道吗

非常感谢你的阅读。你知道吗


Tags: djangopyreport视图模板urlindexrequest
2条回答

对于每个报表,向模板传递一个nexturl并使用javascript重新加载。你知道吗

<script>
  function nextReport() { window.location.href = "{{ next }}"; }
  setTimeout(nextReport, 15000);
</script>
def report(request, extension):

    try:
        my_array = Report.objects.fetching_reports(extension=extension)
    except Report.DoesNotExist:
        my_array = None

    extension +=1

    if my_array = None:
        return HttpResponseRedirect(reverse('your_project_name':'your_app_name', kwargs = {'extension':extension}))
    else:
        return render(request, 'report.html', {'extension':extension})

如果4不存在,它将跳转到下一个对象,如果你想在15秒后跳转,你可以做一个JavaScript重定向到下一个页面并使用扩展var

相关问题 更多 >