【问题标题】:How to Export Foreign Key Field to Excel In Django Views.py?如何在 Django Views.py 中将外键字段导出到 Excel?
【发布时间】:2016-05-16 02:17:18
【问题描述】:

出现此错误:- 'Restaurant' 对象没有属性 'menu_here__starters'

我正在使用 Django-Excel 库

在我的 Models.py 中

类餐厅(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 下载_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"
        )

【问题讨论】:

    标签: excel django-models export


    【解决方案1】:

    make_response_from_query_sets 获取query_set 返回的对象并将其与列名一起显示,列名应与对象的字段名相对应。

    column_names 就像一个过滤器,只显示您想要的字段名称,但在获取对象后它无法进一步查询。因此有效的名称是['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"
        )
    

    【讨论】:

    • 谢谢!这个答案太简单了!
    猜你喜欢
    • 2019-08-10
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 2022-10-12
    • 2021-03-04
    • 2021-10-29
    • 2021-10-25
    • 1970-01-01
    相关资源
    最近更新 更多