Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 28th, 2012  |  syntax: None  |  size: 4.03 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Django: Edit data in a form
  2. def vehicle_add(request):
  3. if request.method == 'POST':
  4.     form = VehicleForm(request.POST)
  5.     if form.is_valid():
  6.         newvehicle = Vehicle()
  7.         vdetails = form.cleaned_data
  8.         newvehicle.reg_number= vdetails['regnumber']
  9.         newvehicle.model= vdetails['model']
  10.         newvehicle.manufacturer= vdetails['manufacturer']
  11.         newvehicle.year= vdetails['year']
  12.         newvehicle.chassis_number= vdetails['chasisnumber']
  13.         Vehicle.save(newvehicle)
  14.         return HttpResponseRedirect('/vehicle')
  15. else:
  16.     form = VehicleForm()
  17. return render_to_response('vehicle_add.html', {'form': form}, context_instance=RequestContext(request))
  18.        
  19. {% for v in obj %}
  20.             <tr><td><a href="/vehicle/{{v.id}}/">{{ v }}</a></td></tr>
  21. {% endfor %}
  22.        
  23. {% extends "base.html" %}
  24. {% block title %}Add Vehicle{% endblock %}
  25. {% block page %}Add Vehicle{% endblock %}
  26. {% block content %}
  27. <html>
  28. <head>
  29. <style type="text/css">
  30.     ul.errorlist {
  31.     margin: 0;
  32.     padding: 0;}
  33.     .errorlist li {
  34.     background-color: red;
  35.     color: white;
  36.     display: block;
  37.     font-size: 10px;
  38.     margin: 0 0 3px;
  39.     padding: 4px 5px;}
  40. </style>
  41. </head>
  42. <body>
  43. <section id = "mainform">
  44. {% if form.errors %}
  45.     <p style="color: red;">
  46.         Please correct the error{{ form.errors|pluralize }} below.
  47.     </p>
  48. {% endif %}
  49. <form action="" method="post">{% csrf_token %}
  50.     <div class="field">
  51.         {{ form.regnumber.errors }}
  52.         <label for="id_regnumber">Reg #:</label>
  53.         {{ form.regnumber }}</div>
  54.     <div class="field">
  55.         {{ form.model.errors }}
  56.         <label for="id_model">Model:</label>
  57.         {{ form.model }}</div>
  58.     <div class="field">
  59.         {{ form.manufacturer.errors }}
  60.         <label for="id_manufacturer">Manufacturer:</label>
  61.         {{ form.manufacturer }}</div>
  62.     <div class="field">
  63.         {{ form.year.errors }}
  64.         <label for="id_year">Year:</label>
  65.         {{ form.year }}</div>
  66.     <div class="field">
  67.         {{ form.chasisnumber.errors }}
  68.         <label for="id_chasisnumber">Chasis #:</label>
  69.         {{ form.chasisnumber }}</div>
  70.     <div class="field">
  71.         <input type="submit" value="Submit">
  72.         <input type="submit" value="Clear">
  73.     </div></form></section>
  74. </body>
  75. </html>
  76. {% endblock %}
  77.        
  78. def vehicle_add(request):
  79. if request.method == 'POST':
  80.     form = VehicleForm(request.POST)
  81.     if form.is_valid():
  82.         newvehicle = Vehicle()
  83.         vdetails = form.cleaned_data
  84.         newvehicle.reg_number= vdetails['regnumber']
  85.         newvehicle.model= vdetails['model']
  86.         newvehicle.manufacturer= vdetails['manufacturer']
  87.         newvehicle.year= vdetails['year']
  88.         newvehicle.chassis_number= vdetails['chasisnumber']
  89.         Vehicle.save(newvehicle)
  90.         return HttpResponseRedirect('/vehicle')
  91. else:
  92.     #WORKING ON THIS
  93.         form = VehicleForm
  94.         newvehicle = Vehicle.objects.get(pk=9)
  95.         form = VehicleForm(newvehicle)
  96. return render_to_response('vehicle_add.html', {'form': form}, context_instance=RequestContext(request))
  97.        
  98. class VehicleForm(forms.Form):
  99. regnumber = forms.CharField(
  100.                             max_length=7,
  101.                             label='Reg #:',
  102.                             widget = forms.TextInput(attrs={'size':7})    )
  103. model = forms.CharField(
  104.                         label='Model',
  105.                         widget = forms.TextInput(attrs={'size':25})    )
  106. manufacturer = forms.CharField(
  107.                                max_length=25,
  108.                                label='Manufacturer',
  109.                                widget = forms.TextInput(attrs={'size':25})    )
  110. year = forms.IntegerField(
  111.                           label='Year',
  112.                           widget = forms.TextInput(attrs={'size':4})    )
  113. chasisnumber = forms.CharField(
  114.                                required=False, label='Chasis #',
  115.                                widget = forms.TextInput(attrs={'size':25})    )
  116.        
  117. #WORKING ON THIS
  118.     # form = VehicleForm  <<< THIS LINE IS UNNECESSARY
  119.     newvehicle = Vehicle.objects.get(pk=9)
  120.     form = VehicleForm(newvehicle.__dict__)