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/ > msgid/django-users/d9c27a7f-fdf0-4abb-b6fb-069b820c5409%40googlegroups.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/CA%2BYYaWd-X8iCguPMChGDW4Jg-fCiixPr5a0VAakzd95E%2BE24Ew%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

