there is no m2m relation in products and cart model....
carts/models.py
class CartItem(models.Model):
cart = models.ForeignKey("Cart")
item = models.ForeignKey(Variation)
quantity = models.PositiveIntegerField(default=1)
line_item_total = models.DecimalField(max_digits=10, decimal_places=2)
def remove(self):
return self.item.remove_from_cart()
def __unicode__(self):
return self.item.title
class Cart(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True)
items = models.ManyToManyField(Variation, through=CartItem)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)
subtotal = models.DecimalField(max_digits=50, decimal_places=2, default=0.00)
.....
def __unicode__(self):
return str(self.id)
products/models.py
class Product(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL)
seller = models.ForeignKey(SellerAccount)
# shop = models.ForeignKey(Shop)
title = models.CharField(max_length=120)
description = models.TextField(blank=True, null=True)
price = models.DecimalField(decimal_places=2, max_digits=20)
class Variation(models.Model):
product = models.ForeignKey(Product)
title = models.CharField(max_length=120)
price = models.DecimalField(decimal_places=2, max_digits=20)
sale_price = models.DecimalField(decimal_places=2, max_digits=20, null=True, blank=True)
active = models.BooleanField(default=True)
inventory = models.IntegerField(null=True, blank=True) #refer none == unlimited amount
def __unicode__(self):
return self.title
On Tue, Sep 20, 2016 at 11:39 AM, Asad Jibran Ahmed <surfer.a1@gmail.com> wrote:
This depends on their being a ManyToMany relationship to Product in the Cart model.return products_listproducts_list.append(p)for p in o.cart.products:for o in orders:products_list = list()orders = Order.objects.filter(user=I'd need to see the full Cart model to confirm, but try something like this to get all products for Orders with the paid status:def get_products(self):self.user, status='paid') --Asad Jibran Ahmed <surfer.a1@gmail.com>On Tue, Sep 20, 2016 at 10:12 AM, Shamaila Moazzam <shamaila.moazzam@gmail.com> wrote:user = models.ForeignKey(settings.AUTH_USER_MODEL) this user is a F.K in products model, orders model , carts model right.cart is also a F.K in orders like thisclass Order(models.Model):status = models.CharField(max_length=120, choices=ORDER_STATUS_CHOICES, default='created') cart = models.ForeignKey(Cart)user = models.ForeignKey(UserCheckout, null=True) billing_address = models.ForeignKey(UserAddress, related_name='billing_address', null=True) shipping_address = models.ForeignKey(UserAddress, related_name='shipping_address', null=True ......seller = models.ForeignKey(SellerAccount, null=True)......i have added this field now to relate sellers app with orders... now advise mehow to filter orders of products with status of paid .( of a logged in user ):)
On Tuesday, September 20, 2016 at 10:44:19 AM UTC+5, Asad Jibran Ahmed wrote:Can you share the Cart model? The Order has a foreign key to Cart. I think that may be the model holding details of the products.
On Tuesday, September 20, 2016 at 9:32:12 AM UTC+4, Asad Jibran Ahmed wrote:How are you associating a product with an order? Is there a way to get a list of products sold for each order?Asad Jibran Ahmed <surf...@gmail.com>On Tue, Sep 20, 2016 at 9:24 AM, Shamaila Moazzam <shamaila...@gmail.com> wrote:Thanks for you kind response ...I am stuck in it :(--I have seller as a foreign key in Product model..products/models.pyclass Product(models.Model):user = models.ForeignKey(settings.AUTH_USER_MODEL) seller = models.ForeignKey(SellerAccount) title = models.CharField(max_length=120) description = models.TextField(blank=True, null=True)price = models.DecimalField(decimal_places=2, max_digits=20)
On Tuesday, September 20, 2016 at 10:09:01 AM UTC+5, Asad Jibran Ahmed wrote:Hi,
While you didn't show us the Product model, I assume it has a ForeignKey to the Order model. To filter for Products that have an Order with a sold status, you should look at the documentation for filtering on relationships at https://docs.djangoproject.com/en/1.10/topics/db/queries/#lo .okups-that-span-relationships
Regards,
Jibran
On Tuesday, September 20, 2016 at 9:04:18 AM UTC+4, Shamaila Moazzam wrote:hiI am a beginner in django/python :(I am making a dashboard of sellers App.I am stuck in filtering orders of the products according to the logged in user(seller)....sellers/models.pyfrom django.conf import settingsfrom django.core.urlresolvers import reversefrom django.db import modelsfrom django.contrib.auth.models import Userclass SellerAccount(models.Model):user = models.ForeignKey(User)managers = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name="manager_sellers" , blank=True) active = models.BooleanField(default=False) timestamp = models.DateTimeField(auto_now_add=True, auto_now=False) def __unicode__(self):return str(self.user.username)def get_absolute_url(self):return reverse("products:vendor_detail", kwargs={"vendor_name": self.user.username}) orders/models.pyclass Order(models.Model):status = models.CharField(max_length=120, choices=ORDER_STATUS_CHOICES, default='created') cart = models.ForeignKey(Cart)user = models.ForeignKey(UserCheckout, null=True) billing_address = models.ForeignKey(UserAddress, related_name='billing_address', null=True) shipping_address = models.ForeignKey(UserAddress, related_name='shipping_address', null=True) shipping_total_price = models.DecimalField(max_digits=50, decimal_places=2, default=5.99) order_total = models.DecimalField(max_digits=50, decimal_places=2, ) order_id = models.CharField(max_length=20, null=True, blank=True) paymethod = models.CharField(max_length=120, choices=CHOICES, default='CreditCard') def __unicode__(self):return str(self.cart.id)sellers/mixins.pyimport datetimefrom django.db.models import Count, Min, Sum, Avg, Maxfrom dress.mixins import LoginRequiredMixinfrom orders.models import Transaction, Orderfrom products.models import Productfrom .models import SellerAccountclass SellerAccountMixin(LoginRequiredMixin, object): account = Noneproducts = []transactions = []orders = []def get_account(self):user = self.request.useraccounts = SellerAccount.objects.filter(user=user) if accounts.exists() and accounts.count() == 1:self.account = accounts.first()return accounts.first()return Nonedef get_products(self):account = self.get_account()products = Product.objects.filter(seller=account) self.products = productsreturn productsdef get_sold_products(self):products = self.get_products()****************************************************** THIS IS THE PROBLEM AREA ????? i want to show orders of the products i got from (products = self.get_products()).keeping this thing in mind that order is completed if its status set to be 'paid'....ORIn other words i want to show products of the user that is logged in if the status of that products are paid.***************************************************** sold = Order.objects.all().filter('products') return soldsellers/views.pyclass SellerDashboard(SellerAccountMixin, FormMixin, View): form_class = NewSellerFormsuccess_url = "/seller/"context["products"] = self.get_products()context["sold_products"] = self.get_sold_products()sellers/dashboard.html{{ sold_products }}i hope someone will definitely figure out my problem....regards....
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com .
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users .
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/d9c27a7f-fdf0 .-4abb-b6fb-069b820c5409%40goog legroups.com
For more options, visit https://groups.google.com/d/optout .
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googl--
You received this message because you are subscribed to the Google Groups "Django users" group.egroups.com .
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users .
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/08787c01-b125 .-47ea-95ea-4497860bd3d5%40goog legroups.com
For more options, visit https://groups.google.com/d/optout .
You received this message because you are subscribed to a topic in the Google Groups "Django users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/django-users/ .FnyOxRU3VC8/unsubscribe
To unsubscribe from this group and all its topics, send an email to django-users+unsubscribe@googlegroups.com .
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users .
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CA% .2BYYaWf1k7FH%2B0puRY-b_a- HvGCSOTDEBU0RBULSinjXEwW13A% 40mail.gmail.com
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAFimi6yKyGcuWt7_KWkJu6fW7ZPSDS4cyZ--S4Ugsg3NRhr-OA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment