I have python and django loaded on my RaspberryPi that is wired to an LED 
array. The web app 'iofcontrol' in my Django project is supposed to 
activate an animation sequence of a set of LEDs.



   - iofppysite is the main project file
   - iofppysite/iofcontrol is the LED control web app!


There is a form with 3 radio buttons (Laser 1, Laser 2, Laser 3) and 2 
submit buttons (Acquire, Deactivate). 


The radio buttons are linked to 1 name/variable, and the submit buttons 
have 2 different actions. When you enter the site, you can select only one 
"Laser" radio button and click "Acquire". It is supposed to perform an LED 
animation based on Laser 1. You click "Deactivate" to turn the LEDs off.


The LED code works by itself but I am having lots of issues with the POST, 
redirect, and HttpResponse logic. I can't seem to set it up right.


I have been getting this NoReverseMatch error or I cannot properly process 
the POST data. I am new with Django so I have no idea what I'm doing. I 
have been combing through tons of tutorials and problem articles but just 
can't seem to get it right.


Can someone help me figure this out and make it work for me?? You will 
totally make my day!


The error I am getting now is:




NoReverseMatch at /  Reverse for 'submit' with arguments '()' and keyword 
arguments '{}' not found. 0     pattern(s) tried:[u'$submit'/]

And the following is highlighted in my index file:

<form class="form-mini" method="post" action="{% url 'iofcontrol:submit' %}">


My code is below:



*iofppysite/iofppysite/urls.py*


from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [

    url(r'^admin/', admin.site.urls),
    url(r'^', include('iofcontrol.urls', namespace='iofcontrol')),
]


*iofppysite/iofcontrol/urls.py*


from django.conf.urls import url
from . import views

urlpatterns = [

    url(r'^', views.index, name='index'),
    url(r'^submit/', views.submit, name='submit'),
]



*iofppysite/iofcontrol/index.html - Form portion only*


<form class="form-mini" method="post" action="{% url 'iofcontrol:submit' %}">

        {% csrf_token %}




            <div class="form-row">
                <div class="form-radio-buttons">

        <div>
            <div>
                <label>
                    <span>Laser type</span>
                </label> 

                <label>
                    <span>Select one to acquire</span>
                </label>


                       </div>
            <div>
                <label>
                    <span>Laser 1</span>
                </label>

                            <label>
                                <input type="radio" name="laser_id" value="0" 
{% if laserAct == 0 %}    {{"checked"}}{% endif %}>

                            </label>

                        </div>

            <div>
                <label>
                    <span>Laser 2</span>
                </label>
                            <label>
                                <input type="radio" name="laser_id" value="1" 
{% if laserAct == 1 %}    {{"checked"}}{% endif %}>

                            </label>

                        </div>

            <div>
                <label>
                    <span>Laser 3</span>
                </label>
                            <label>
                                <input type="radio" name="laser_id" value="2" 
{% if laserAct == 2 %}    {{"checked"}}{% endif %}>

                            </label>

                        </div>





                </div>
            </div>

            <div class="form-row form-last-row">
                <button name="btnSubmit" type="submit" 
value="a">Acquire</button>
        <button name="btnSubmit" type="submit" value="s">Shutdown</button>
            </div>

        </form>



iofppysite/iofcontrol/views.py


from django.shortcuts import render
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
from django.template import loader

from iofled import control

# For debugging purposes, python debugger
import time
import pdb

def index(request):
               context = {'led_message : "Index page access"}        
        print "A request was made: {0}".format(request)

        return render(request, 'iofcontrol/index.html', Context(context))

def submit(request, laser_id):

        try:
                oLED = IoFLED()
                btnSubmit = request.POST['btnSubmit']
                laserid = request.POST['laser_id']



                print "The values of b n l: {0} and {1}".format(btnSubmit, 
laserid)

                #If acquire was selected
                if(btnSubmit == "a" and laserid != False):

                        oLED.deactivateLEDs()
                        print "LED deactivated"
                        oLED.activateLEDWiFi()
                        print "WiFi activated"
                        oLED.activateLEDAnim(laserid)                           
                  
                        print "Animating LEDs"
                        context = {
                         'led_nessage': "Acquiring based on Laser %s" % laserid,
                         'laserAct': laserid,
                        }
                #If shutdown was selected
                elif(btnSubmit == "s"):
                        oLED.deactivateLEDs()
                        oLED.activateLEDWiFi()

                del oLED

        except Exception as e:
                if(oLED):
                        del oLED
                context = {
                         'error_message': "A proper selction was not made. %s" 
% e,

                }

                return render(request,'iofcontrol/index.html', context)
        else:
                return HttpResponseRedirect(reverse('iofcontrol:index', args = 
(context,)))




-- 
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+unsubscr...@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/72c57fd7-85dc-438d-ae86-02b82804b4ee%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to