0

これは 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)

URL:

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) を使用しています。

4

1 に答える 1