一.forms.py
from django import forms
from demo.apps.ventas.models import producto
class addProductForm(forms.ModelForm):
class Meta:
model = producto
exclude = {'status',}
"""
class addProductForm(forms.Form):
nombre = forms.CharField(widget=forms.TextInput())
descripcion = forms.CharField(widget=forms.TextInput())
imagen = forms.ImageField(required=False)
precio = forms.DecimalField(required=True)
stock = forms.IntegerField(required=True)
def clean(self):
return self.cleaned_data
"""
二.views.py
from django.shortcuts import render_to_response
from django.template import RequestContext
from demo.apps.ventas.forms import addProductForm
from demo.apps.ventas.models import producto
from django.http import HttpResponseRedirect
def edit_product_view(request,id_prod):
info = "iniciado"
prod = producto.objects.get(pk=id_prod)
if request.method == "POST":
form = addProductForm(request.POST,request.FILES,instance=prod)
if form.is_valid():
edit_prod = form.save(commit=False)
form.save_m2m()
edit_prod.status = True
edit_prod.save() # Guardamos el objeto
info = "Correcto"
return HttpResponseRedirect('/producto/%s/'%edit_prod.id)
else:
form = addProductForm(instance=prod)
ctx = {'form':form,'informacion':info}
return render_to_response('ventas/editProducto.html',ctx,context_instance=RequestContext(request))
def add_product_view(request):
info = "iniciado"
if request.method == "POST":
form = addProductForm(request.POST,request.FILES)
if form.is_valid():
add = form.save(commit=False)
add.status = True
add.save() # Guardamos la informacion
form.save_m2m() # Guarda las relaciones de ManyToMany
info = "Guardado satisfactoriamente"
return HttpResponseRedirect('/producto/%s'%add.id)
else:
form = addProductForm()
ctx = {'form':form,'informacion':info}
return render_to_response('ventas/addProducto.html',ctx,context_instance=RequestContext(request))
"""
def add_product_view(request):
info = "Inicializando"
if request.user.is_authenticated():
if request.method == "POST":
form = addProductForm(request.POST,request.FILES)
if form.is_valid():
nombre = form.cleaned_data['nombre']
descripcion = form.cleaned_data['descripcion']
imagen = form.cleaned_data['imagen'] # Esto se obtiene con el request.FILES
precio = form.cleaned_data['precio']
stock = form.cleaned_data['stock']
p = producto()
if imagen: # Generamos una pequenia validacion.
p.imagen = imagen
p.nombre = nombre
p.descripcion = descripcion
p.precio = precio
p.stock = stock
p.status = True
p.save() # Guardar la informacion
info = "Se guardo satisfactoriamente!!!!!"
else:
info = "informacion con datos incorrectos"
form = addProductForm()
ctx = {'form':form, 'informacion':info}
return render_to_response('ventas/addProducto.html',ctx,context_instance=RequestContext(request))
else:
return HttpResponseRedirect('/')
"""
"""
def edit_product_view(request,id_prod):
info = ""
p = producto.objects.get(id=id_prod)
if request.method == "POST":
form = addProductForm(request.POST,request.FILES)
if form.is_valid():
nombre = form.cleaned_data['nombre']
descripcion = form.cleaned_data['descripcion']
imagen = form.cleaned_data['imagen'] # Esto se obtiene con el request.FILES
precio = form.cleaned_data['precio']
stock = form.cleaned_data['stock']
p.nombre = nombre
p.descripcion = descripcion
p.precio = precio
p.stock = stock
if imagen:
p.imagen = imagen
p.save() # Guardar la informacion
info = "Se guardo satisfactoriamente!!!!!"
return HttpResponseRedirect('/producto/%s'%p.id)
if request.method == "GET":
form = addProductForm(initial={
'nombre':p.nombre,
'descripcion':p.descripcion,
'precio':p.precio,
'stock':p.stock,
})
ctx = {'form':form,'info':info,'producto':p}
return render_to_response('ventas/editProducto.html',ctx,context_instance=RequestContext(request))
"""