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): orders = Order.objects.filter(user=self.user, status='paid') products_list = list() for o in orders: for p in o.cart.products: products_list.append(p) return products_list This depends on their being a ManyToMany relationship to Product in the Cart model. Asad Jibran Ahmed <[email protected]> http://blog.asadjb.com On Tue, Sep 20, 2016 at 10:12 AM, Shamaila Moazzam < [email protected]> 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 this > > class 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 me > how 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 <[email protected]> >>> http://blog.asadjb.com >>> >>> On Tue, Sep 20, 2016 at 9:24 AM, Shamaila Moazzam <[email protected] >>> > wrote: >>> >>>> Thanks for you kind response ...I am stuck in it :( >>>> >>>> I have seller as a foreign key in Product model.. >>>> >>>> *products/models.py* >>>> >>>> class 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/#lookups-that-span-relationships. >>>>> Regards, >>>>> Jibran >>>>> >>>>> On Tuesday, September 20, 2016 at 9:04:18 AM UTC+4, Shamaila Moazzam >>>>> wrote: >>>>>> >>>>>> hi >>>>>> I 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.py* >>>>>> >>>>>> from django.conf import settings >>>>>> from django.core.urlresolvers import reverse >>>>>> from django.db import models >>>>>> from django.contrib.auth.models import User >>>>>> >>>>>> >>>>>> >>>>>> class 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.py* >>>>>> >>>>>> class 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.py* >>>>>> >>>>>> >>>>>> import datetime >>>>>> >>>>>> from django.db.models import Count, Min, Sum, Avg, Max >>>>>> >>>>>> from dress.mixins import LoginRequiredMixin >>>>>> from orders.models import Transaction, Order >>>>>> from products.models import Product >>>>>> >>>>>> from .models import SellerAccount >>>>>> >>>>>> >>>>>> >>>>>> class SellerAccountMixin(LoginRequiredMixin, object): >>>>>> account = None >>>>>> products = [] >>>>>> transactions = [] >>>>>> orders = [] >>>>>> >>>>>> def get_account(self): >>>>>> user = self.request.user >>>>>> accounts = SellerAccount.objects.filter(user=user) >>>>>> if accounts.exists() and accounts.count() == 1: >>>>>> self.account = accounts.first() >>>>>> return accounts.first() >>>>>> return None >>>>>> >>>>>> def get_products(self): >>>>>> account = self.get_account() >>>>>> products = Product.objects.filter(seller=account) >>>>>> self.products = products >>>>>> return products >>>>>> >>>>>> def 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'.... >>>>>> OR >>>>>> In 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 sold >>>>>> >>>>>> >>>>>> *sellers/views.py* >>>>>> >>>>>> class SellerDashboard(SellerAccountMixin, FormMixin, View): >>>>>> form_class = NewSellerForm >>>>>> success_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 [email protected]. >>>> To post to this group, send email to [email protected]. >>>> Visit this group at https://groups.google.com/group/django-users. >>>> To view this discussion on the web visit https://groups.google.com/d/ms >>>> gid/django-users/d9c27a7f-fdf0-4abb-b6fb-069b820c5409%40goog >>>> legroups.com >>>> <https://groups.google.com/d/msgid/django-users/d9c27a7f-fdf0-4abb-b6fb-069b820c5409%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- > 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 [email protected]. > To post to this group, send email to [email protected]. > 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%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/08787c01-b125-47ea-95ea-4497860bd3d5%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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 [email protected]. To post to this group, send email to [email protected]. 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. For more options, visit https://groups.google.com/d/optout.

