gpt4 book ai didi

python - 如何在 Django 模型中添加动态字段?

转载 作者:太空宇宙 更新时间:2023-11-03 19:37:24 33 4
gpt4 key购买 nike

我正在使用 django 创建一个应用程序下载站点。我尝试编写一个模型,管理员可以在管理页面中动态添加不同的下载内容。例如我有一个名为 foobar 的软件,它有 3 个不同的版本:1.1、1.2、1.3。我希望用户可以通过使用添加按钮添加带有下载版本的下载链接来管理模型。但我不知道如何在 django 中做到这一点。

最佳答案

将模型设置为具有主模型和具有主模型外键的辅助模型:

class DownloadItem(models.Model):

name = models.CharField( etc etc)
... other attributes here ...


class DownloadItemFile(models.Model):
parent = models.ForeignKey('DownloadItem', related_name="versions")
version = models.CharField( etc etc)
file = models.FileField(upload='path/to/uploaddir/')

然后,当您拥有 DownloadItem 模型的实例时,您可以通过以下方式获取各种文件版本:

mydownloaditem.versions.all()

为了能够通过管理员添加文件,您将需要使用内联。在相关应用程序的 admin.py 中,您需要添加如下内容:

class DownloadItemFileInline(admin.TabularInline):
model = DownloadItemFile

class DownloadItemAdminOptions(admin.ModelAdmin):
inlines = [ DownloadItemFileInline, ]
...other admin options here...

admin.site.register(DownloadItem, DownloadItem AdminOptions)

关于python - 如何在 Django 模型中添加动态字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2825435/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com