Django联表查询时模型名被当作字段名的问题排查
问题原因及解决方法
核心错误
你用错了跨表查询的字段名。Django ORM进行关联查询时,需要用当前模型中定义的外键字段名称,而不是关联的目标模型类名。
你的TD_FD模型里,外键字段是primary_id(关联到all_scheme),所以查询时应该写primary_id__branch_id,而不是all_scheme__branch_id。
修正后的查询语句
deposit_data = TD_FD.objects.filter(primary_id__branch_id=branch_id).values()
额外注意点
你的两个模型的__str__方法存在错误:直接return self会触发递归调用报错,应该返回模型的某个字符串字段,比如:
class TD_FD(models.Model): # ... 其他字段定义 ... def __str__(self): return self.identity # 用identity字段作为模型的字符串标识 class all_scheme(models.Model): # ... 其他字段定义 ... def __str__(self): return self.scheme_name # 用scheme_name或identity字段作为标识
内容的提问来源于stack exchange,提问作者Ahm Shamim Reza
相关产品推荐
相关产品推荐

