Witam serdeczne. Otóż tworze właśnie sklep. Próbuje właśnie napisać koszyk i średnio mi to idzie. Koszyk chcialem stworzyc w oparciu o pliki cookies żeby można było korzystać z koszyka bez logowania. Prosze bardzo o pomoc kogos bardziej doswiadczonego, aby mnie nakierował jak go stworzyć.
Mój kod w chwili obecnej jest zrobiony w analogicznym oparciu o kod który znalazłem w internecie. Jeżeli jest ktos kto poswieciłby mi chwilke to bylbym bardzo wdzieczny
models.py:
class Koszyk(models.Model):
klient = models.CharField(max_length=1000, blank=False)
ilosc_produktow = models.IntegerField(default=0)
suma_cena_brutto = models.IntegerField(default=0)
suma_cena_netto = models.IntegerField(default=0)
stworzono = models.DateTimeField(auto_now_add=True)
def __init__(self, request):
self.session = request.session
cart = self.session.get(koszyk)
if not cart:
cart = self.session[koszyk] = {}
self.cart = cart
def add(self, element, quantity):
element_koszyk_id = str(element.numer)
if element_koszyk_id not in self.cart:
self.cart[element_koszyk_id] = {'quantity': 0, 'price': str(element.cena_brutto)}
self.cart[element_koszyk_id]['quantity'] += quantity
self.save()
def save(self):
self.session.modified = True
class ElementKoszyk(models.Model):
koszyk = models.ForeignKey(Koszyk, default=None, on_delete=models.CASCADE, related_name="elementKoszyk")
numer = models.PositiveIntegerField()
nazwa = models.CharField(max_length=1000, blank=False)
cena_brutto = models.IntegerField(default=0)
cena_netto = models.IntegerField(default=0)
views.py:
def koszyk(request, page=0):
page = 'koszyk'
cart = Koszyk(request)
# View code here...
t = loader.get_template('ext/koszyk.html')
c = locals()
return HttpResponse(t.render(c, request))
from django.shortcuts import get_object_or_404
# add to cart
def koszyk_dodaj(request, product_id):
cart = Koszyk(request)
produkt = get_object_or_404(Produkt, id=product_id)
# form = KoszykFormDodawanie(request.POST)
# if form.is_valid():
# cd = form.cleaned_data
# cart.add(product=produkt, quantity=cd['quantity'])
return redirect('cart:details')