2014-03-12 24 views
0

我有以下代碼Django的 - 無效的字面對於int()與底座10

機型:

class Item(models.Model): 
    name = models.CharField(max_length=50) 
    price = models.IntegerField() 

觀點:

def index(request): 
    itemlist=Item.objects.all() 
    return render(request,"items/index.html",{"itemlist":itemlist}) 

def details(request,item_id): 
    item = get_object_or_404(Item,pk=item_id) 
    return render(request,"items/details.html",{"item":item}) 

def new(request): 
    if request.method == "POST": 
     if "create" in request.POST: 
      newitemform = NewItemForm(request.POST) 
      if newitemform.is_valid(): 
       cd = newitemform.cleaned_data 
       Item.objects.create(name=cd["name"],price=cd["price"]) 
       return HttpResponseRedirect(reverse("main:index")) 

    else: 
     newitemform = NewItemForm() 

    return render(request,"tags/new.html",{"newitemform":newitemform}) 

網址:

urlpatterns = patterns("", 
     url(r'^$',views.index,name="index"), 
     url(r'^(?P<item_id>\w+)/$',views.details,name="details"), 
     url(r'^new/$',views.new,name="new") 
     ) 

表格:

class NewItemForm(forms.Form): 
    name=forms.CharField(max_length=70)      
    price=forms.IntegerField(min_value=0) 

和當我打電話從「索引」視圖我不斷收到錯誤的「新」圖:

ValueError異常在/主/新/ 無效字面對於int()與基體10:'新'

我在做什麼錯?

回答

1

你可以張貼整個錯誤和追溯......但猜測

url(r'^(?P<item_id>\w+)/$',views.details,name="details"), #<- is the problem 
url(r'^new/$',views.new,name="new") 

因爲"new"比賽"\w+" ...你可以簡單地通過交換這兩行

url(r'^new/$',views.new,name="new") 
url(r'^(?P<item_id>\w+)/$',views.details,name="details"), #<- is the problem 
+0

我解決這個解決了這個問題。你指出了正確的地方,但問題不在於此);)。當我使用\ d +時,我正在使用\ w +,因爲該變量應該是一個int,而不是一個字符串 – user3264316

+0

那麼問題真的是那麼...我想你有一個很好的理由在那裏使用一個字符串,只是假設新的不是你想要的論點......我本可以猜到你想要一個int,但是這會直接抵消你的東西,而我的答案保留了你的其他功能 –

相關問題