2015-01-02 61 views
1

我試圖讓我的手與Django髒,我開始嘗試做我自己的項目。我目前無法使用POST請求將模板參數傳遞給我的視圖。Django - 將參數從模板傳遞到視圖不起作用

我的繼承人在模板

#in main.html 

<div> 
    {{ event_results }} 
    {{ friends }} 
</div> 

{% for user in results %} 
    <div class="userblock"> 
     <p class="user">{{ user.username }}</p> 
      <a href="/events/addFriend/{{user.username}}"> 
       <button class="navbuttons" id="addfriend">Add as friend</button> 
      <a/> 
    </div> 
{% endfor %} 

#in urls.py 

from django.conf.urls import patterns, url 
from events import views, eventview 

url(r'^addFriend/(<requested_friend>[a-z]*)/', views.addFriend, name='addFriend'), 
) 

#in views.py 

def addFriend(request, requested_friend): 
    currentUser = User.objects.get(username=request.session['username']) 
    try: 
     list_of_friends = Friends.objects.get(username=currentUser) 
    except (KeyError, Friends.DoesNotExist): 
     return render(request, 'events/main.html', {'friends': requested_friend}) 
    else: 
     return render(request, 'events/main.html', {'friends':list_of_friends}) 

代碼,這樣,當我點擊按鈕,在main.html中「加爲好友」,它進入url.py並將其映射到視圖中的功能addFriend。與爭論,然後從那裏它發揮它的魔力。但是,這並沒有引起爭論。我知道我在使用正則表達式在urls.py中做錯了,但我不知道是什麼。任何意見是極大的讚賞。謝謝!

+1

變化'( [AZ] *)''到(?P [0-9A-ZA- z _ \ - ] +)' – torm

+0

謝謝@torm,它現在映射出來,但由於某種原因,當我嘗試打印requested_friend時,我什麼都沒有。我沒有正確接受嗎? –

回答

0

您在urls.py中有錯誤。在命名組模式中,您錯過了?P前綴。請參閱doc for reference

而不是

url(r'^addFriend/(<requested_friend>[a-z]*)/', views.addFriend, name='addFriend'), 

它應該是:

url(r'^addFriend/(?P<requested_friend>[a-z]*)/', views.addFriend, name='addFriend'), 
+0

嗯,我現在有,它仍然無法正常工作。 –

+0

url(r'^ addFriend /(?p [a-z] *)/',views.addFriend,name ='addFriend'), 我做錯了什麼?謝謝 –

+0

是你的'request_friend'值只包含小寫字母嗎?也許正則表達式很糟糕? –

1

當您更改(<requested_friend>[a-z]*)(?P<requested_friend>[0-9A-Za-z_\-]+)比一切都看起來不錯。

但請記住在該模式中使用+而不是**比賽也是一個空字符串(addFriend//匹配),但+字符串必須至少有一個字符(addFriend//不匹配)

您可以在URL模式r'^addFriend/(?P<requested_friend>[0-9A-Za-z_\-]+)/$'Here年底,你可以找到爲什麼添加$

還要檢查是否在瀏覽器鏈接具有正確的價值/events/addFriend/<user_name>/也許有毛病{{ user.username }}

相關問題