0

我想在 Django 管理面板页面上显示来自 DynamoDB 的数据。我已尝试使用 PynamoDB 创建模型并将其注册到管理面板。

我面临以下两个问题:

  1. 仅从 DynamoDB 表中获取属性“id”而不是所有属性。我在使用 boto3 从 DynamoDB 表中获取属性定义时确认了这个问题。

    attribute_definitions = table_name.attribute_definitions

  2. 我面临的第二个问题是在使用管理面板注册创建的模型(通过使用 PynamoDB)时出现错误。我明白了

“TypeError:‘MetaModel’对象不可迭代”

4

1 回答 1

0

您可以使用此方法将此数据传递给管理模板 changelist_view

前任:

class DynmoDbAdmin(admin.ModelAdmin):
    def changelist_view(self, request, extra_context=None):
        get data from dynamodb
        add this data to extra_context
        return super().changelist_view(request, extra_context=extra_context)

之后,您需要按照此模式扩展管理模板

  1. 添加'APP_DIRS': True,到您的设置文件。
  2. 转到您的应用并创建此文件夹templates/admin/model_name
  3. 在此文件夹中创建文件change_list.html

此链接将对您有所帮助。

  1. https://docs.djangoproject.com/en/3.2/howto/overriding-templates/
  2. 如何覆盖和扩展基本的 Django 管理模板?
于 2021-12-07T12:49:12.470 回答