出现此错误: - “餐馆”对象没有属性“menu_here__starters”
我正在使用Django-Excel Lib
在我的Models.py
中Class Restaurant(models.Model):
name = models.CharField(max_length=20)
area = models.CharField(max_length = 30)
menu_here = models.ForeignKey(Menu)
班级菜单(models.Model):
starters = models.CharField(max_length = 50)
desserts = models.CharField(max_length = 50)
在我的Views.py
中def download_excel_4(请求):
query_set = Restaurant.objects.all() # Foreign column is Menu
column_names = ['menu_here__starters','menu_here__desserts' ]
return excel.make_response_from_query_sets(
query_set,
column_names,
'xls',
file_name="Restaurant With Complete Menu Database"
)
答案 0 :(得分:1)
make_response_from_query_sets
获取query_set
返回的对象,并将其与列名一起显示,列名应与对象的字段名对应。
column_names
就像一个过滤器,只显示您想要的字段名称,但在获取对象后无法进一步查询。因此,有效名称为['name', 'area', 'menu_here']
。
另一种方法是使用.values()
方法查询然后使用excel.make_response_from_records
将对象作为带有相关字段的dict。
query_record = Restaurant.objects.all().values('name', 'area', 'menu_here__starters', 'menu_here__desserts')
return excel.make_response_from_records(
query_record,
'xls',
file_name="Restaurant With Complete Menu Database"
)