【发布时间】:2016-01-01 16:05:39
【问题描述】:
在从提交到编辑更多字段后尝试重定向时遇到问题 还可以创建提交内容的超链接。
使用重定向提交我的表单时,我收到以下错误。 如果我将带有渲染请求的表单提交到另一个页面,则表单保存正常。
请求方法:POST请求 网址:http://127.0.0.1:8000/resourcelib/add_pricebookDjango 版本:1.8.4 异常类型:NoReverseMatch 异常值: 使用参数“()”和关键字反转“detail_pricebook” 未找到参数'{'p_id': 22L}'。尝试了 0 个模式:[]
我的模型.py
class PriceBook(models.Model):
pricebook_id = models.AutoField(primary_key=True)
pricebook_name = models.CharField(max_length=255,verbose_name='PriceBook Name')
discription = models.TextField(verbose_name='Discription')
date_created = models.DateTimeField(auto_now_add=True, blank=True)
active = models.SmallIntegerField(max_length=1, blank=True)
def __unicode__(self):
return self.pricebook_name
view.py
def new_pricebook(request):
if request.method == "POST":
pricebook_form = PricebookForm(request.POST)
if pricebook_form.is_valid():
post = pricebook_form.save(commit=False)
post.save()
#return render(request, 'resourcelib/thanks.html',)
return redirect('detail_pricebook', p_id=post.pricebook_id)
else:
pricebook_form = PricebookForm()
return render(request, 'resourcelib/pricebook_add.html', {'pricebook_form': pricebook_form})
def detail_pricebook(request, p_id):
pricebook_from = get_object_or_404(PriceBook, pk=p_id)
return render(request, 'resourcelib/pricebook_detail.html', {'pricebook_from':pricebook_from})
url.py
url(r'^add_pricebook', views.new_pricebook, name='new_pricebook'),
url(r'^list_pricebook', views.list_pricebook, name='list_pricebook'),
url(r'^detail_pricebook/(?P<p_id>[0-9]+)/$', views.detail_pricebook, name='detail_pricebook'),
我不相信它在 url 文件中,因为如果我浏览到条目,例如,我不会收到任何错误。 127.0.0.1:8000/resourcelib/detail_pricebook/3/ - 工作正常
但是我的链接也无法正常工作,但我可以列出我的条目。但是,当您单击它刚刚出现的链接时,该链接将无法从下面的代码中使用 127.0.0.1:8000/resourcelib/%7B%%20url%20'detail_pricebook'%20p_id.pk%7D
{% if pricebooks %}
<ul>
{% for pricebook in pricebooks %}
<li><h1><a href="{% url 'detail_pricebook' p_id.pk}">{{ pricebook.pricebook_name }}</a></h1></li>
{% endfor %}
</ul>
{% else %}
<p>No price books have been created.</p>
{% endif %}
{% endblock %}
任何帮助将不胜感激
【问题讨论】:
-
缺少
%。还要将模板中的p_id替换为pricebook:{% url 'detail_pricebook' pricebook.pk %}
标签: php python django forms url