Python django搜索功能,模型不工作
我是django的一名新员工。我没有使用django搜索或任何其他内置搜索模块。 在搜索产品功能中,我无法过滤以产品字段作为外键的kitchenstylemapping模型。 感谢您的帮助此链接:是您的新好友 Django附带了出色的文档,您应该充分利用它。例如,过滤器中的双下划线意味着Django可以查找外键;它很强大,但不是很漂亮 我发现编写查询的最简单方法是打开一个shell:Python django搜索功能,模型不工作,python,django,Python,Django,我是django的一名新员工。我没有使用django搜索或任何其他内置搜索模块。 在搜索产品功能中,我无法过滤以产品字段作为外键的kitchenstylemapping模型。 感谢您的帮助此链接:是您的新好友 Django附带了出色的文档,您应该充分利用它。例如,过滤器中的双下划线意味着Django可以查找外键;它很强大,但不是很漂亮 我发现编写查询的最简单方法是打开一个shell: @login_required def searchProduct(request): """
@login_required
def searchProduct(request):
"""
to search a particular product with name
"""
search_terms =''
if request.GET['search_term']:
search_terms = request.GET.get('search_term')
if search_terms:
products = models.Product.objects.filter(product_name__icontains=search_terms)
for product in products:
kitchenstyle = KicthenStyleMapping.objects.filter(product= product)
print kitchenstyle
return render_to_response('admin/product/searchListProduct.html',{'search_terms': search_terms,'products' : products }, context_instance=RequestContext(request))
return HttpResponseRedirect('/')
class KicthenStyleMapping(models.Model):
style_mapping_id = models.AutoField(primary_key=True)
style = models.ForeignKey(KitchenStyle)
product = models.ForeignKey(Product)
class Meta:
db_table = 'kicthen_style_mapping'
class KitchenStyle(models.Model):
id = models.AutoField(primary_key=True)
style_name = models.CharField(max_length=248L, blank=True)
description = models.TextField(blank=True)
estimated_time = models.CharField(max_length=100L, blank=True)
status = models.CharField(max_length=10L)
class Meta:
db_table = 'kitchen_style'
class Product(models.Model):
id = models.AutoField(primary_key=True)
cabinet = models.CharField(max_length=100L, blank=True)
material = models.ForeignKey(Materials)
category = models.ForeignKey(Category, null=True, blank=True)
sub_category = models.ForeignKey(SubCategory, null=True, blank=True)
product_name = models.CharField(max_length=135, blank=True)
product_code = models.CharField(max_length=135, blank=True)
short_description = models.TextField(blank=True)
descriptions = models.TextField(blank=True)
product_price = models.FloatField(null=True, blank=True)
min_height = models.FloatField(null=True, blank=True)
max_height = models.FloatField(null=True, blank=True)
height_scale = models.FloatField(null=True, blank=True)
min_width = models.FloatField(null=True, blank=True)
max_width = models.FloatField(null=True, blank=True)
width_scale = models.FloatField(null=True, blank=True)
min_depth = models.FloatField(null=True, blank=True)
max_depth = models.FloatField(null=True, blank=True)
depth_scale = models.FloatField(null=True, blank=True)
is_hinges = models.CharField(max_length=12)
image = models.CharField(max_length=135, blank=True)
is_door = models.CharField(max_length=12, blank=True)
discount = models.FloatField(null=True, blank=True)
is_drawer = models.CharField(max_length=12)
video_url = models.CharField(max_length=200L, blank=True)
is_custom = models.CharField(max_length=4L)
class Meta:
db_table = u'product'
然后学习过滤器语法
使用诸如dir(您的\u对象)
之类的方法来了解它所具有的字段类型以及可以查询的字段类型,它们不会立即全部有意义,但这是一个很好的起点
希望这能有所帮助。尝试时会发生什么?这就是开始调试的地方。在“产品”变量中有哪些对象?检查你的输入,它们是你认为的吗?试着只运行代码的一小部分,你会发现哪里出了问题。我的输入是用于搜索产品的简单单词。我的问题是,我是否可以将相同样式的产品分组,并在KicthenStyleMapping中获得resultusing筛选器的对象现在我得到了结果,但我无法根据样式类型进行排序
python manage.py shell
from (your model file) myapp.models import *
KitchenStyle.objects.filter(style_set__product_name__icontains=searchterms)