我有两个表。我想根据第一个表中的筛选值筛选第二个表中的记录。我的第二个筛选语句中有错误。是否有人可以帮助我进行排序?
报告表数据=报告表.对象.筛选器(cn编号=主表数据. cn编号))
我的代码如下。
Models.py
class Master_table(models.Model):
sl_no = models.AutoField(primary_key=True)
cn_number = models.CharField(max_length=10, null=False)
class report_table( models.Model ):
cn_number = models.ForeignKey(Master_table, on_delete=models.CASCADE)
remarks = models.CharField( max_length=20, null=False )
Views.py
def any_view(request):
Master_table_data=Master_table.objects.get(sl_no=request.GET['key'])
report_table_data=report_table.objects.filter(cn_number=Master_table_data.cn_number))
这将引发以下错误。
ValueError:对于以10为基数的int(),文本无效:"美国编号2000203"
2条答案
按热度按时间qojgxg4l1#
后来我意识到,我在我的“report_table”中犯了错误。我修改了下面的代码,它正在工作。
型号.py
浏览量.py
eit6fx6z2#
当你将一个模型字段设置为
models.ForeignKey()
时,Django动态API会将其视为对整个对象的引用,而不是主键。因此,“cn_number”作为外键的更合适的名称可能是“master_table”。然后,你可以使用model_name__field_name=field_value
过滤外部模型字段。因此,对于report_table模型:
对于滤波器功能: