[英]Django: How can I store in database a variable which I generate in a random function?
我的Web應用程序在django中,每當用戶按下“下一步”按鈕時,它就會顯示隨機圖像。 我嘗試存儲名稱,或者更好的是存儲在其名稱上的圖像編號。 例如,如果名稱是“ image4.jpg”,那么我想將數字4存儲為數字或文本。
所以,首先我在models.py文件中有一個類。
class Session(User):
image_number = models.IntegerField()
變量的類型可能是錯誤的,因為我不想從表單中獲取它。 我在views.py文件中生成數字。 所以,我只想存儲它。
如我所說,我在views.py文件中有一個函數,該函數生成隨機數。
def func_random(self):
random_im_list = random.sample(xrange(1,20),5)
return {1v: random_im_list[0],
2v: random_im_list[1],
... etc}
因此,這里我生成5個數字的列表,因為我想在每個會話中顯示5張圖像。 用戶按下5次“下一步”按鈕,每次他看到新的隨機圖像。
我還在views.py中有五個頁面的五個類。
class Image1(Page):
class Image2(Page):
class Image3(Page):
class Image4(Page):
class Image5(Page):
在這里我需要一些幫助,因為我不等待用戶的任何輸入。 我已經用隨機數生成了列表。 那么,如何將它們存儲在數據庫中? 第一次會話后的數據庫必須有5列,每列中有一個數字。
之后,我有了模板文件:
{% if Page == 1 %}
<div>
<im src="{{static_url}}images/image{{ 1v }}.jpg" />
<div>
{% elif Page == 2 %}
<div>
<im src="{{static_url}}images/image{{ 2v }}.jpg" />
<div>
etc....
對於您來說,擁有一個以圖像編號作為參數的單一視圖可能更有意義。 然后,您可以檢查它是否是第一張圖像,如果是,則生成隨機圖像列表供用戶查看。 另外,您應該考慮將Django會話用於您要執行的操作。 如果使用會話,則可以這樣編寫視圖:
from django.shortcuts import render
def image_view(request, image_number): # image_number is from 1 to 5
if image_number == 1:
request.session['image_list'] = list(random.sample(xrange(1,20),5))
image = request.session['image_list'][image_number - 1]
return render(request, "yourtemplate.html", {"image_number": image_number, "image": image})
您的模板可能如下所示:
<div>
<img src="{{static_url}}images/image{{ image }}.jpg" />
</div>
並且在您的URL配置中,確保像這樣編寫它,以便通過圖像編號正確地設定視圖:
urlpatterns = [
url(r'^images/([1-5])/$', views.image_view),
# ...
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.