Wednesday, February 22, 2017

Re: Django template language resolve url

Iudovic is right, your syntax is wrong.

use  {% url 'ytlinks:save_ytlinks' %}

the original syntax is ,  {% url 'namespace:url_name' arguments %}
On Thursday, February 16, 2017 at 9:42:14 PM UTC+5:30, xyron wrote:
Code hier eingeben...

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 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.

Also if I create a file called "test.html" (located in the same directory), it doesn't  change the error.

{% url 'test.html' %}

If I use:

<form action="" method="post">

It works.

What am I doing wrong? I really, really appreciate any attempt to help.

xyron


--
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+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@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/85318c8b-2e82-4076-8736-ded3da1fb96f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment