如何将外键字段导出到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" )