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.

Reply via email to