这是我在Django的第一个真正的项目,而且我在这里有点人气:))
在我的索引页面中,我需要用户提供一些信息,然后将其发布到另一个视图。
这里我找到了:
NoReverseMatch at /download/
Reverse for 'progress' with arguments '('',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['download/(?P<download_id>[0-9]+)/progress/$']
查看页面:
class IndexView(generic.TemplateView):
model = Download
template_name = 'download/index.html'
def progress(request, download_link):
download = models.Download(link=download_link, status = 0)
download.save()
return HttpResponseRedirect(reverse('download:detail', args=(download.id,)))
索引页:
<form class="download" action="{% url 'download:progress' download_link %}" method="post">
<input type="input" name="download_link" id="download_link" class="input" placeholder="Enter the URL:" value="{{download_link}}" required/>
<input type="submit" class="btn btn-primary" value="Download">
</form>
型号:
class Download(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
link = models.CharField(max_length=3000)
status = models.IntegerField(default=-1)
网址:
app_name = 'download'
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'),
url(r'^(?P<pk>[0-9]+)/results/$', views.ResultsView.as_view(), name='results'),
url(r'^(?P<download_id>[0-9]+)/progress/$', views.progress, name='progress'),
]
我现在使用最新的稳定Django(v1.10)
答案 0 :(得分:0)
当您查看源代码时,pt.PivotFields("LeadStatus").AutoSort Order:=xlDescending, Field:="Count of LeadStatus"
路径之后是否有任何内容?如果/download/
中未传递download_link
,则表示您的表单的context
属性无效。您试图在表单中获取它的值,但在用户输入之前会在页面加载时生成action
。
为了对您从表单中收到的输入执行某些操作,您需要通过html
或view
请求将其传递给GET
功能。只有POST
个请求会在网址中添加参数,并且表单会处理它 - 您无需在GET
中指定它。
在你的情况下,你可以这样做:
查看:强>
action
<强>模板:强>
def progress(request):
if request.method == 'POST':
download_link = request.POST['download_link']
download = models.Download(link=download_link, status = 0)
download.save()
return HttpResponseRedirect(reverse('download:detail', args=(download.id,)))
此外,在<form class="download" action="{% url 'download:progress' %}" method="post">
<input type="input" name="download_link" id="download_link" class="input" placeholder="Enter the URL:" required/>
<input type="submit" class="btn btn-primary" value="Download">
</form>
函数中,您应该想到一种方法来检查具有这些数据的view
实例是否存在,以及是否创建新实例也传递其他字段的信息。
将您的Download
网址更改为progress
(不带斜线!)。这样,url应该是可解析的,url(r'^progress$', views.progress, name='progress')
函数应该能够接收view
数据。从这里开始,您可以继续修改以获得所需的结果。
Django的文档中有很多关于表单的信息。您应该通过它来更好地理解主题 - https://docs.djangoproject.com/en/1.10/topics/forms/和https://docs.djangoproject.com/en/1.10/ref/forms/