feat: generando vista de compra con formularios de django.
This commit is contained in:
parent
a466d8b20a
commit
ad78625351
@ -1,4 +1,39 @@
|
|||||||
from django import forms
|
from django import forms
|
||||||
|
from django.forms.widgets import DateInput
|
||||||
|
|
||||||
|
from .models import Sale, SaleLine
|
||||||
|
|
||||||
|
|
||||||
class ImportProductsForm(forms.Form):
|
class ImportProductsForm(forms.Form):
|
||||||
csv_file = forms.FileField()
|
csv_file = forms.FileField()
|
||||||
|
|
||||||
|
class PurchaseForm(forms.ModelForm):
|
||||||
|
class Meta:
|
||||||
|
model = Sale
|
||||||
|
fields = [
|
||||||
|
"customer",
|
||||||
|
"date",
|
||||||
|
"phone",
|
||||||
|
"description",
|
||||||
|
]
|
||||||
|
widgets = {
|
||||||
|
'date': DateInput(attrs={'type': 'date'})
|
||||||
|
}
|
||||||
|
|
||||||
|
class PurchaseLineForm(forms.ModelForm):
|
||||||
|
class Meta:
|
||||||
|
model = SaleLine
|
||||||
|
fields = [
|
||||||
|
"product",
|
||||||
|
"quantity",
|
||||||
|
"unit_price",
|
||||||
|
"description",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
LineaFormSet = forms.models.inlineformset_factory(
|
||||||
|
Sale,
|
||||||
|
SaleLine,
|
||||||
|
extra=2,
|
||||||
|
fields='__all__'
|
||||||
|
)
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<form method="POST">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ sale_form}}
|
||||||
|
{{ linea_formset.management_form }}
|
||||||
|
{% for form in linea_formset %}
|
||||||
|
<table style="border: solid 1px blue; margin: 10px">
|
||||||
|
{{ form.as_table }}
|
||||||
|
</table>
|
||||||
|
{% endfor %}
|
||||||
|
<br/><button name="form" type="submit" >Comprar</button>
|
||||||
|
</form>
|
@ -6,6 +6,7 @@ app_name = 'don_confiao'
|
|||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("", views.index, name="wellcome"),
|
path("", views.index, name="wellcome"),
|
||||||
path("comprar", views.buy, name="buy"),
|
path("comprar", views.buy, name="buy"),
|
||||||
|
path("comprar_django", views.django_buy, name="django_buy"),
|
||||||
path("compras", views.purchases, name="purchases"),
|
path("compras", views.purchases, name="purchases"),
|
||||||
path("productos", views.products, name="products"),
|
path("productos", views.products, name="products"),
|
||||||
path("importar_productos", views.import_products, name="import_products")
|
path("importar_productos", views.import_products, name="import_products")
|
||||||
|
@ -3,7 +3,7 @@ from django.http import HttpResponse, HttpResponseRedirect, JsonResponse
|
|||||||
from django.template import loader
|
from django.template import loader
|
||||||
|
|
||||||
from .models import Sale, Product, ProductCategory
|
from .models import Sale, Product, ProductCategory
|
||||||
from .forms import ImportProductsForm
|
from .forms import ImportProductsForm, PurchaseForm, LineaFormSet
|
||||||
|
|
||||||
import csv
|
import csv
|
||||||
import io
|
import io
|
||||||
@ -16,11 +16,23 @@ def buy(request):
|
|||||||
context = {}
|
context = {}
|
||||||
if request.POST:
|
if request.POST:
|
||||||
raise Exception(request.POST)
|
raise Exception(request.POST)
|
||||||
else:
|
|
||||||
raise Exception(request.POST)
|
|
||||||
return render(
|
return render(
|
||||||
request, 'don_confiao/purchase.html', context)
|
request, 'don_confiao/purchase.html', context)
|
||||||
|
|
||||||
|
def django_buy(request):
|
||||||
|
if request.method == "POST":
|
||||||
|
raise Exception(request.POST)
|
||||||
|
else:
|
||||||
|
sale_form = PurchaseForm()
|
||||||
|
sale_linea_form = LineaFormSet()
|
||||||
|
return render(
|
||||||
|
request,
|
||||||
|
'don_confiao/django_purchase.html',
|
||||||
|
{
|
||||||
|
'sale_form': sale_form,
|
||||||
|
'linea_formset': sale_linea_form
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
def purchases(request):
|
def purchases(request):
|
||||||
purchases = Sale.objects.all()
|
purchases = Sale.objects.all()
|
||||||
|
Loading…
Reference in New Issue
Block a user