DJANGO ФИЛЬТРАЦИЯ ПО СВОЙСТВАМ ВНЕШНИХ КЛЮЧЕЙ

    I HAVE 2 MODELS 
    
    class Cart(models.Model):
        item = models.ForeignKey(Item, on_delete=models.CASCADE,blank=True, null=True)
        user = models.ForeignKey(User,on_delete=models.CASCADE,null=True, blank=True)
        quantity = models.IntegerField(default=1)

class Item(models.Model):
    restaurant = models.ForeignKey(Restaurant,on_delete=models.CASCADE,null=True,

blank=True) name= models.CharField(max_length=100) is_active = models.CharField(max_length=30,null=False,default=True) is_avaliable = models.CharField(max_length=30,null=False,default=True) цена = models.CharField(max_length=30,null=False,default=0)

ГДЕ cart использует ресторан в качестве внешнего ключа

    in views.py
    
    def post(self,request,*args,**kwargs):
            userid = request.user.id
            res= request.data.get('restaurant', False)
            cartItem = Cart.objects.filter(user=userid,item__restaurant__contains=res)
    it is throwing an error saying
    
            raise FieldError(
        django.core.exceptions.FieldError: Related Field got invalid lookup: contains
        [02/Aug/2022 08:37:45] "POST /placeorder HTTP/1.1" 500 118627
    
    what i want to do is Get all cart objects which has user id = userid and item.restaurant = restaurant id ... 
    can someone help me
    
    i referred this page

     https://stackoverflow.com/questions/1981524/django-filtering-on-foreign-key-properties
    but i doesnt seems to work!

Я думаю, что это не contains, это должно быть icontains.

def post(self,request,*args,**kwargs):
    userid = request.user.id
    res= request.data.get('restaurant', False)
    cartItem = Cart.objects.filter(user=userid,item__restaurant__icontains=res) # here I changed
    ...
Вернуться на верх