1

I am new in django and I want to create a form to update some database entries.

this is a simple form where I have a simple input text where I write the id of the record that I want to update:

main.html

<form method='post' action='/config/{{ idprov }}' >
<input type="text" class="form-control" name="idprov" id="idprov" value ="{{ idprov }}" />
<input class="btn btn-danger" type="submit" value="Config">
</form>

forms.py

from django import forms
from .models import Proveedor, Estado, Config

class ConfigForm(forms.ModelForm):
    class Meta:
        model = Config

this is my views.py:

def configView(request,idprov):

    prov = Config.objects.get(idproveedor=idprov)
    if request.method == 'POST':
       form = ConfigForm(request.POST or None, instance=prov)
       if form.is_valid():
          form.save(commit=false)
          return HttpResponseRedirect('/monitor/')
    else:
       form = ConfigForm( instance=prov)
    return render_to_response('config.html',
                              {'form':form})

my template config.html:

{% extends 'base.html' %}
{% block content %}
<div class="container">
<div class="row">
<div class="col-md-4">
<form method='POST' action='' >
   <div class="form-group">{% csrf_token %}
        {{ form.as_p }}
   </div>
        <button type='submit' class="btn btn-primary">Grabar</button>
</form>
</div>
</div>
</div>
{% endblock %}

my urls.py:

from django.conf.urls import patterns, include, url
from prov.views import home
from prov.views import proveedores
from prov.views import estado
from prov.views import monitorViewV2

from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
    # Examples:
    url(r'^$', 'prov.views.home', name='home'),
    url(r'^proveedores/$', 'prov.views.proveedores', name='proveedor'),
    url(r'^estado/$', 'prov.views.estado', name='estado'),
    url(r'^monitor/$', 'prov.views.monitorView', name='monitor'),
    url(r'^monitorv/$', 'prov.views.monitorViewV2', name='monitorv2'),
    url(r'^config/(?P<idprov>\d+)/$', 'prov.views.configView',name='config'),
    url(r'^admin/', include(admin.site.urls)),
)

But I receive the error Page not found. I try to follow other snippets and always raise different errors.

I think the error is in the urls.py and in the way I pass the argument from the main.html.

Any advice or snippet will be very appreciated

Thanks in advance

1
  • here is the answer Commented May 21, 2020 at 15:30

1 Answer 1

2

First you have a form.save(commit=false) in your view without saving it later, thats mean the data is never saved into the model.

Second in your template config.html the form action is empty <form method='POST' action=''> change for <form method='POST' action='.'>

I hope that help to you.

Sign up to request clarification or add additional context in comments.

2 Comments

Thanks for the reply, but the error page not found still persist. I think the error is in the main.html. I am very confused
What's in your urls.py?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.