除了在添加产品数据后重定向回索引页面之外,一切正常工作,目前在我的数据保存后,它会被重定向到 127.0.0.1:8000/product/add_product/add_product
目前,当我的索引页面(add_product.html)加载时,我有一个从数据库中呈现数据的表,
我的views.py
from models import Product,Category
from django.shortcuts import render_to_response,get_object_or_404
from django.http import HttpResponseRedirect
def index(request):
category_list = Category.objects.all()
product_list = Product.objects.all()
return render_to_response('product/add_product.html', {'category_list': category_list, 'product_list':product_list})
def add_product(request):
post = request.POST.copy()
category = Category.objects.get(name=post['category'])
product = post['product']
quantity = post['quantity']
price = post['price']
new_product = Product(category = category, product = product, quantity = quantity, price = price )
new_product.save()
category_list = Category.objects.all()
product_list = Product.objects.all()
return render_to_response('product/add_product.html', {'category_list': category_list, 'product_list':product_list})
我的urls.py
from django.conf.urls.defaults import patterns, include, url
urlpatterns = patterns('product.views',
url(r'^$', 'index'),
url(r'^add_product/$', 'add_product'),
)
如何将URL指向我的索引页面(add_product.html)?
答案 0 :(得分:7)
在 127.0.0.1:8000/product/add_product / 的视图中返回
from django.http import HttpResponseRedirect
def add_product(request)
...........................
...........................
return HttpResponseRedirect('/')
它将重定向到索引页面。 同时尝试提供网址名称,以便您可以使用反向代替“/”
由于
答案 1 :(得分:3)
您可能在模板中错误地设置了表单action
。
而不是相对网址,
<form method="post" action="add_product">
动作应该有绝对的URL:
<form method="post" action="/product/add_product">
作为改进,您可以使用url
模板标记,这样您就不需要对模板中的网址进行硬编码。
{% load url from future %}
<form method="post" action="{% url 'add_product' %}">
上面的代码段使用新的网址语法,方法是加载新的网址标记。