2015-10-17 111 views
0
--models.py-- 

class Products(models.Model): 
    name= models.CharField(max_length=120, unique=True) 
    slug = models.SlugField(unique=True) 
    price = models.IntegerField(default=100) 
    image1 = models.ImageField(upload_to='static/images/home', blank=True, null=True) 


class Cart(models.Model): 
    user = models.ForeignKey(User, null=True, blank=True) 
    product = models.ManyToManyField(Products, blank=True) 



--views.py-- 

@login_required 
def cart(request): 
    try: 
     cart_user = Cart.objects.filter(user = request.user) 
    except: 
     cart_user = False 

    if cart_user != False: 
     j = Products.objects.filter(pk=Cart.objects.filter(user=request.user)) #Not getting results in j 

了,我想这是由用户表单车型号选择时会记录他(或她)的产品清单。 如何申请加入两种机型,使我得到的所有产品列表在Cart.product模型中的'p'变量中。谢谢Django的模型ManyToManyField字段加入

回答

1

尚王对模型命名是正确的。我们来使用这些。

class Product(models.Model): 
    name= models.CharField(max_length=120, unique=True) 
    slug = models.SlugField(unique = True) 
    price = models.IntegerField(default=100) 
    image1 = models.ImageField(upload_to='static/images/home',blank=True,null=True) 

class Cart(models.Model): 
    user = models.ForeignKey(User,null=True, blank=True) 
    products = models.ManyToManyField(Product, blank=True) 

现在你可以使用这样的过滤器。

products = Product.objects.filter(cart__user__id=1) 

carts = Cart.objects.filter(articles__name__startswith="Something").distinct() 
+0

三江源@卡里-的Antti-Kuosa – Harish

+0

产品= Product.objects.filter(cart__user__id = 1)..这里cart__user__id或Cart__user__id ???推车是我的模型还是别的? – Harish

+0

是的,购物车是你的型号。 –