0
我是django的newb,所以這可能是一個簡單的錯誤。當我發送視圖列表參數user_id從一個相同的HttpResponseRedirect從不同的視圖(相同的重定向到視圖添加)。它工作正常。HttpResponseRedirect Reverse Args返回視圖的名稱
但是,當我點擊模板提交按鈕和調用add視圖我得到
無效字面INT()基數爲10:「添加」
使用我看到了打印功能該正確的ID int從列表傳遞到模板,但在模板和回憶列表之間的某處查看它會丟失。然後添加將str「添加」傳遞給列表視圖。任何幫助將不勝感激。
#views.py
def list(request, user_id): #list:list
#...
#...doing stuff
#...
context = RequestContext(request)
#Gets Menus
main = Menu.objects.get(pk=1) #pk 1 is the Main Menu made
main_menu = main.food_item_set.all()
mine = Menu.objects.get(pk=2) #pk 2 is the My Menu made
print user_id
p = Plan_User.objects.get(pk = int(user_id))
id = p.id
return render_to_response('foods_data/list.html', {'main_menu':main_menu,
'user_id':id}, context)
def add(request): #list:add
"""Adds the selected item to My Menu."""
if request.method == "POST":
mine = Menu.objects.get(pk=2) #pk 2 is the My Menu made in getList.py
f_name = request.POST.get("choice")
user_number = request.POST.get("user_number")
food_entry = Food_Item.objects.get(food_name=f_name)
food_entry.menus.add(mine)
return HttpResponseRedirect(reverse("list:list", args=(user_number,)))
#list.html
{% for object in main_menu %}
<form id='main_list' method='post' action="{% url 'list:add' %}">
{% csrf_token %}
<input type="hidden" name="choice" value="{{ object.food_name }}">
<input type="hidden" name="user_number" value="{{ user_id }}">
<input type="submit" value="Add to Menu" name="selection"/>
<label for="object{{ forloop.counter }}"></label></br>
</form>
#urls.py
urlpatterns = patterns('',
url(r'^(?P<user_id>.+)/$', views.list, name='list'),
url(r'^add/$', views.add, name='add'),
url(r'^remove/$', views.remove, name='remove'),
)
兩件事情 - 做__not__使用'添加'和'list'作爲函數名。另外,將'。+'的URL模式移動到模式的末尾 – karthikr