Python 传递过滤器参数时,M2m关系中断
在我的模型中,属性和图像之间存在m2m关系,比如imageproperty=models.ManyToManyField(属性,blank=True)。当我在查询中传递一个参数时,我会得到这样的结果,而这些图像显示的不是很好,所以我在尝试过滤属性及其关联图像时遇到了一个问题 . 这是到目前为止我的代码Python 传递过滤器参数时,M2m关系中断,python,django,django-views,Python,Django,Django Views,在我的模型中,属性和图像之间存在m2m关系,比如imageproperty=models.ManyToManyField(属性,blank=True)。当我在查询中传递一个参数时,我会得到这样的结果,而这些图像显示的不是很好,所以我在尝试过滤属性及其关联图像时遇到了一个问题 . 这是到目前为止我的代码 def filter_properties(request, prop, p): order = "creation_date" if p["sort"]: order = p[
def filter_properties(request, prop, p):
order = "creation_date"
if p["sort"]: order = p["sort"]
if p["asc_desc"] == "desc": order = '-' + order
results = Property.objects.filter(status = True)
for prop in results:
prop.images = prop.image_set.all()[:1] #Should i need to return in results so it brings values when filtering?
if p["name"] : results = results.filter(name__icontains=p["name"])
if p["price_from"] : results = results.filter(price__gte=int(p["price_from"]))
if p["price_to"] : results = results.filter(price__lte=int(p["price_to"]))
if p["category"]:
lst = p["category"]
or_query = Q(categories = lst[0])
for c in lst[1:]:
or_query = or_query | Q(categories = c)
results = results.filter(or_query).distinct()
return results
def search_properties_view(request):
try:
page = int(request.GET.get("page", '1'))
except ValueError:
page = 1
p = request.POST
prop = defaultdict(dict)
parameters = dict.fromkeys(
('name', 'price_from', 'price_to', 'currency_type', 'activity_type', 'sort', 'asc_desc'),
'',
)
parameters["category"] = []
for k, v in p.items():
if k == "category":
parameters[k] = [int(x) for x in p.getlist(k)]
elif k in parameters:
parameters[k] = v
elif k.startswith("name") or k.startswith("curency_type") or k.startswith("activity_type"):
k, pk = k.split('-')
prop[pk][k] = v
elif k.startswith("category"):
pk = k.split('-')[1]
prop[pk]["category"] = p.getlist(k)
if page != 1 and "parameters" in request.session:
parameters = request.session["parameters"]
else:
request.session["parameters"] = parameters
results = filter_properties(request, prop, parameters)
paginator = Paginator(results, 20)
try:
results = paginator.page(page)
except (InvalidPage, EmptyPage):
request = paginator.page(paginator.num_pages)
return render(request, 'propiedades/propiedades.html', {
'propiedades': request.POST,
'media_url': settings.MEDIA_URL,
'results': results,
'params': parameters,
'categories': PropertyCategory.objects.all()
})
代码缩进有问题。另外,如果你检查图像,你的浏览器试图加载什么URL?这是我的代码,这是我显示的图像是的,但URL是什么?如果右键单击chrome中的坏图像并单击“检查元素”,您将看到
。什么东西?