Error using url in django template language

35 views
Skip to first unread message

xyron

unread,
Feb 16, 2017, 11:12:14 AM2/16/17
to Django users
Hey there,

I'm searching since more than 12 hours for a solution for my problem and I'm kinda frustrated.

I want to use a form and define the action link using django template language in a html-file:

{% extends "base/header.html" %}
{% block content %}

 
<div class="login">
   
<h1>Enter Youtube-Link</h1>
   
<form action=" {% url 'links.views.save_ytlink' %} " method="post">

I get following error:

Reverse for 'links.views.save_ytlink' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

My project structure looks like this:

────mysite
    ├───links
    │   ├───templates
    │   │   └───home.html
    │   ├───urls.py
    │   └───views.py 
    └───mainapp
        ├───templates
        │   ├───base
        │   │   └───header.html
        │   ├───links
        │   └───register
        ├───────urls.py
        └───────views.py

mainapp.urls.py looks like this:

urlpatterns = [
url(r'^', include('links.urls', namespace='ytlinks'), name='index'),
url(r'^admin/', admin.site.urls),
url(r'^register', include('register.urls'), name='register'),
url(r'^ytlinks/', include('links.urls', namespace='ytlinks')),
]

links.urls.py looks like this:

urlpatterns = [
url(r'^save_ytlink', views.save_ytlink, name='save_ytlink'),
url(r'^list$', views.ytlinks_list, name='ytlinks_list'),
url(r'^', views.ytlinks, name='ytlinks'),
]

links.views.py looks like this:

def save_ytlink(request):
msg = ""
msg_status = "" # possible: 'success', 'info', 'danger', 'warning'

# Check if user came here by form
if request.method == 'GET':
return render(request, 'home.html')

ytlink = request.POST['ytlink']
allow_save = True

    # Validation
# ...

return render(request, 'home.html', {'queryset':'', 'msg':msg, 'msg_status':msg_status})

Things I tried:

<form action=" {% url 'links.views.save_ytlink' %} " method="post">
<form action=" {% url 'save_ytlink' %} " method="post">
<form action=" {% url save_ytlink %} " method="post">
<form action=" {% url "links.views.save_ytlink" %} " method="post">
<form action=" {% url myapp:save_ytlink %} " method="post">

(and much more)

I tried to set namespaces, to see if it makes any difference. Also stuff with ../views.save_ytlink didn't work.

Even if I create a file (test.html) in the same directory, it won't work.

{% url 'test.html' %}

It seems that I can't resolve any kind of URL. If I set <form action="" method="post"> it works.

Your help is really, really appreciated. I don't know anymore what to do.

So long, xyron

Matthew Pava

unread,
Feb 16, 2017, 11:35:56 AM2/16/17
to django...@googlegroups.com

In your urls.py, you have the url name as “ytlinks” with an s.  But your url tag doesn’t have the s.

Try this:

{% url ‘ytlinks.ytlinks’ %}

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/8c09cef7-1ee3-4f38-9776-601998692621%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

chris rose

unread,
Feb 21, 2017, 12:58:08 AM2/21/17
to Django users
hey you tried: 

<form action=" {% url myapp:save_ytlink %} " method="post">

you app name is links rather than myapp, so try:

<form action=" {% url links:save_ytlink %} " method="post">


Reply all
Reply to author
Forward
0 new messages