如何将外键字段导出到Excel中Django的Views.py?
获取此错误: – “餐厅”对象没有属性“menu_here__starters”
我正在使用Django-Excel Lib
在我的Models.py中
class级餐厅(models.Model):
name = models.CharField(max_length=20) area = models.CharField(max_length = 30) menu_here = models.ForeignKey(Menu)
class级菜单(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" )
make_response_from_query_sets
接受由query_set
返回的对象,并将其与应与对象的字段名称对应的列名称一起显示。
column_names
作用类似于只显示所需字段名称的filter,但在获取对象后不能进一步查询。 所以有效的名字是['name', 'area', 'menu_here']
。
另一种方法是使用.values()
方法查询对象,然后使用excel.make_response_from_records
查询相关字段。
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" )