簡體   English   中英

如何在Django中從views.py重復調用函數?

[英]How can I repeatedly call a function from a views.py in Django?

如何在Django中從views.py重復調用函數?

urls.py

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

views.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秒調用一次? 還是我應該采用其他方法?

非常感謝您的閱讀。

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

對於每個報告,將next URL傳遞到模板,然后使用javascript重新加載。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM