首页 > 技术文章 > django 关系字段一对多的筛选

qianxunman 2020-10-23 16:14 原文

需求:

根据明细表StockQualityOrderLine的 is_new_product的值筛选出主表的数据.

简要代码如下:


class StockQualityOrderLine(models.Model):
    quality_order = models.ForeignKey('warehouse.StockQualityOrder', related_name="StockQualityOrderLine",
                                      on_delete=models.DO_NOTHING,
                                      db_constraint=False)  
    is_new_product = models.BoolenField()


# filter 设置:
    is_new_product = filters.BooleanFilter(field_name='StockQualityOrderLine__is_new_product',label='是否新品',distinct=True)

说明:

  1. filter 中的StockQualityOrderLine 代表related_name
  2. 需要添加distinct=True选项,否则主表的数据会出现重复

推荐阅读