我正在尝试编写一个返回Vehicle
对象的查询。该查询应按特定的Garage
对象(即garage__name =)和特定的Category
对象(即category__name =)以及Vehicle
对象的可用< / strong>字段为 True (可用= True)。这些是模型:
class Garage(models.Model):
name = models.CharField (max_length = 30, blank=False)
zip = models.IntegerField (blank=False)
area = models.CharField (max_length = 30, blank=False)
pic = models.ImageField (upload_to ='static/images/garages')
class Vehicle(models.Model):
car_no = models.CharField (max_length = 20, blank=False)
photo = models.ImageField (upload_to ='static/images/vehicles')
car_model = models.ForeignKey (Car_model, on_delete=models.CASCADE)
garage = models.ForeignKey (Garage, on_delete=models.CASCADE)
category = models.ForeignKey (Category, on_delete=models.CASCADE)
available = models.BooleanField(default=True)
class Category(models.Model):
name = models.CharField (max_length = 15, blank=False)
我在相应的视图函数中尝试过的是:
def carSelectView(request, type, grg):
cars=Vehicle.objects.filter(category__name=type, garage__name=grg, available=True)
return render(request, 'carphotoselectpage.html', {'ca':cars})
但是它返回一个空白页。在采用这种方法之前,我尝试只购买特定类别的汽车,但它确实起作用:
def carSelectView(request, type):
cars = Vehicle.objects.filter(category__name = type).filter(available=True)
我不明白问题出在哪里。我想通过1.选择特定的Garage
,然后从2. Garage
中选择与Category
名称匹配的车辆来显示车辆。 3.谁的可用字段为正确。
Vehicle
模型是否未在查询中获取Garage
模型?
答案 0 :(得分:1)
您的代码看起来不错,所以这很可能是type
和grg
变量中传递的内容的问题,而不是查询的问题。
要调试,请尝试以下操作:
print()
命令将存储在type
和grg
变量中的值输出到终端。检查以确保它们符合预期。$ python manage.py shell
引导您的终端,然后手动运行查询以确保其返回预期的输出。 from .models import Vehicle
,然后Vehicle.objects.filter(category__name='REAL CATEGORY', garage__name='REAL GARAGE', available=True)
。确保获得结果。如果不这样做,请尝试一个接一个地删除条件,直到可以找出问题的根源。Car
个实例。尝试将已知的Car
实例(例如Car.objects.all()
)传递给它,并确保它显示正确的输出。