2014-03-12 25 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,但是这会直接抵消你的东西,而我的答案保留了你的其他功能 –

相关问题