Django - 基数为10的int()无效文字
我有以下代码
模型:
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)
当我从'index'视图调用'new'视图时,我总是遇到这个错误:
在 /main/new/ 处出现 ValueError 错误:无法将 'new' 转换为整数。
我哪里出错了?
1 个回答
2
你可以把整个错误信息和追踪记录发出来……不过我猜可能是这样
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