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
...