2010-07-16 103 views
0

好了,現在我知道如何作爲一個列表上的一個/ myurl顯示圖像/在Django(YEAH!)Django的圖像顯示

但我怎麼能顯示每個URL一個圖像與一個按鈕,點擊下一個圖像等

所以基本上我希望來到第一/ urlstart /:

文本和下一個按鈕。

將用戶帶到例如/ urlstart/1

顯示列表的第一個圖像,並在其下方顯示一個按鈕。

這使向/ urlstart/2

這裏列表的下一個圖像被顯示用戶。

怎樣的url.py正則表達式的部分都看起來像,所以這是可能的嗎? 如何調整視圖來獲得1個圖像列表,但多個網址?

最後,如果有人用可下載和可安裝的模塊/庫實現了這一點, photologue(很不幸沒有爲我工作)或更好的想法,我會很樂意得到一些關於如何使這個快速和有效的見解。

非常感謝大家花時間回答!

回答

1

URL的正則表達式可能是這個樣子:

url(r'^urlstart/(?P<image_id>\d*)/?$', 'urlstart', name='urlstart') 

查看代碼可能是這個樣子:

def urlstart(request, image_id=0): 
    if image_id == 0: 
    image = None 
    else: 
    image = get_object_or_404(Image, image_id) 
    next_image = image_id + 1 

    return render_to_response('template.html', locals(), context_instance=RequestContext(request) 

模板代碼:

{% if image %} 
    <img src={{ image.url }}> 
    <a href="/urlstart/{{ next_image }}">Next</a> 
{% else %} 
    Put your text here. See first image by clicking <a href="/urlstart/1">here</a> 
{% endif %} 

顯然,這被簡化。例如,您可能需要檢查是否有下一張圖像。

希望這會有所幫助。

+0

您應該使用{%url%}模板標記來避免模板中的硬編碼網址。 – 2010-07-18 11:24:57

+0

非常感謝。這太棒了,我會立即嘗試。現在有一個問題。正則表達式部分(?P \ d *)/?$必須改變,以適應或如果我使用你的代碼下面的工作? – MacPython 2010-07-19 07:16:16

+0

另一個問題我在哪裏提到我的照片在硬盤上的位置? – MacPython 2010-07-19 07:24:54

0

看看Pagination這將爲您提供下一首/上鍊接等

而且,它很可能是一個好主意,用permalinks,並從視圖而不是在傳遞一個/上一個圖像將URL硬編碼到模板中。