Python django搜索功能,模型不工作

Python django搜索功能,模型不工作,python,django,Python,Django,我是django的一名新员工。我没有使用django搜索或任何其他内置搜索模块。 在搜索产品功能中,我无法过滤以产品字段作为外键的kitchenstylemapping模型。 感谢您的帮助此链接:是您的新好友 Django附带了出色的文档,您应该充分利用它。例如,过滤器中的双下划线意味着Django可以查找外键;它很强大,但不是很漂亮 我发现编写查询的最简单方法是打开一个shell: @login_required def searchProduct(request): """

我是django的一名新员工。我没有使用django搜索或任何其他内置搜索模块。 在搜索产品功能中,我无法过滤以产品字段作为外键的kitchenstylemapping模型。 感谢您的帮助

此链接:是您的新好友

Django附带了出色的文档,您应该充分利用它。例如,过滤器中的双下划线意味着Django可以查找外键;它很强大,但不是很漂亮

我发现编写查询的最简单方法是打开一个shell:

    @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)