django搜索逗号分隔的字符串

时间:2015-04-07 05:04:59

标签: python django

Models.py

class Photo(models.Model):
    name = models.CharField(max_length=255)
    keyword = models.CharField(max_lenght=300)

此处的关键字字段关键字以逗号分隔的字符串形式存储 格式

如:医疗照片,人体,身体

现在我正在尝试在逗号分隔的字符串上搜索照片。

这样做我写下面的查询

keysearch = request.GET.get('format')

qr = Q(keyword__icontains=keysearch)
searched_image = Photo.objects.filter(qr).all()

我通过获取方法获取关键字值,如下所示

{% for keyword in keywords %}<h5><a href="{% url 'keywordSearch' %}?format=keyword"><span class="label label-default">{{keyword}}</span></a>{%endfor%}

这是url

url(r'^keyword_search_result/$',views.keywordSearch,name = 'keywordSearch')

这里提到for循环中的关键字实际上是list of keywords从以下视图中获取

def ImageKeywords(request,image_id):
    image_keywords = get_object_or_404(Photo,pk = image_id)
    keywords = image_keywords.keyword.split(',')

    return render_to_response('search/keyword_search_results.html',{'keywords': keywords},context_instance = RequestContext(request))

现在问题是,我的search results页面中没有显示任何结果。我的查询中是否有任何问题?

1 个答案:

答案 0 :(得分:0)

你必须像这样设置a href

<a href="{% url 'keywordSearch' %}?format={{keyword}}">