除了在添加产品数据后重定向回索引页面之外,一切都正常工作,目前在我的数据保存后,它被重定向到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})
Run Code Online (Sandbox Code Playgroud)
我的urls.py
from django.conf.urls.defaults import patterns, include, url
urlpatterns = patterns('product.views',
url(r'^$', 'index'),
url(r'^add_product/$', 'add_product'),
)
Run Code Online (Sandbox Code Playgroud)
如何将URL指向我的索引页面(add_product.html)?
在127.0.0.1:8000/product/add_product/的视图中 返回此内容
from django.http import HttpResponseRedirect
def add_product(request)
...........................
...........................
return HttpResponseRedirect('/')
Run Code Online (Sandbox Code Playgroud)
它将重定向到索引页面.还尝试给出url名称,以便您可以使用reverse而不是'/'
谢谢
您可能action在模板中错误地设置了表单。
而不是相对网址,
<form method="post" action="add_product">
Run Code Online (Sandbox Code Playgroud)
该操作应具有绝对网址:
<form method="post" action="/product/add_product">
Run Code Online (Sandbox Code Playgroud)
作为改进,您可以使用url模板标签,这样您就不需要在模板中对 url 进行硬编码。
{% load url from future %}
<form method="post" action="{% url 'add_product' %}">
Run Code Online (Sandbox Code Playgroud)
上面的代码段通过加载新的 url 标记使用新的 url 语法。
| 归档时间: |
|
| 查看次数: |
19519 次 |
| 最近记录: |