擅长:python、mysql、java
<p>似乎您并没有真正了解<code>Model</code>和{<cd2>}是什么。<code>Model</code>类是数据库表的表示,而<code>ModelAdmin</code>是为该表及其内容提供管理功能的组件。如果没有一个模型,你就不可能有一个模型。在</p>
<p>长话短说:你要么</p>
<p>1/使用模型或</p>
<p>2/自己编写整个视图和模板,并将其插入管理员。在</p>
<p>对于第二个解决方案,<a href="https://stackoverflow.com/questions/4148923/is-it-possible-to-create-a-custom-admin-view-without-a-model-behind-it?noredirect=1&lq=1">see this question (and it's answers)</a>,或者只在google上搜索“没有模型的django管理视图”(有两个第三方应用程序,应该可以帮助在管理中插入自定义视图)。在</p>
<p>现在,第一个解决方案可能——或者不是,取决于您的确切需求——和第二个一样好,这取决于谁填充您的s3bucket以及如何填充。如果没有模型,每次有人访问您的自定义管理视图时,您都必须在bucket中查询一个文件列表,这可能会非常昂贵。如果所有上传到s3 bucket的操作都在您的控制之下,那么您可以使用一个模型来保存一个本地文件列表“cache”,并且您只需要在有效下载一个文件时点击s3。这也为您提供了存储有关这些文件的元数据的机会—这些文件可用于搜索/筛选—并最终在需要时将您的s3文件链接到其他模型。当然,这意味着您可以免费获得管理员;)</p>
<p>实际上,即使您无法控制这些上传,出于上述原因,您可能仍然希望使用模型,并有一个后台任务(cron job或等效任务)从s3存储桶内容更新您的表(或者,如果s3提供web钩子,则在上传时有一个由s3调用的API端点来更新您的表)。在</p>