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 django-users+unsubscr...@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/457d2aa1-3893-4737-8fdf-a55ed08c06d3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to