如何在 django 模型中从一个字段添加多个输入

Posted

技术标签:

【中文标题】如何在 django 模型中从一个字段添加多个输入【英文标题】:How to add multiple input from one field in django model 【发布时间】:2019-09-20 09:14:53 【问题描述】:

我有这个 models.py 代码,我想从单个字段中获取多个值/文件,而不是为图像创建另一个表。

目前我只是重复这些字段

class contentimage(models.Model):
content = models.ForeignKey(element, on_delete=models.CASCADE)
title = models.CharField(max_length=200)

titleimg1 = models.CharField(max_length=200)
image1 = models.ImageField(blank=True, upload_to='media/')
img1description = models.TextField()

titleimg2 = models.CharField(max_length=200)
image2 = models.ImageField(blank=True, upload_to='media/')
img2description = models.TextField()

titleimg3 = models.CharField(max_length=200)
image3 = models.ImageField(blank=True, upload_to='media/')
img3description = models.TextField()

titleimg4 = models.CharField(max_length=200)
image4 = models.ImageField(blank=True, upload_to='media/')
img4description = models.TextField()

titleimg5 = models.CharField(max_length=200)
image5 = models.ImageField(blank=True, upload_to='media/')
img5description = models.TextField()

最佳输出将是 django admin 中的输入字段,其中加号可以添加多个图像 如果有人能引导我朝着正确的方向前进,那将非常有帮助。

【问题讨论】:

【参考方案1】:

将图像制作成内联。首先给他们自己的模型类:

class Image(models.Model):
    content = models.ForeignKey(contentimage, on_delete=PROTECT). # this is what connect the two models
    title = models.CharField(max_length=200)
    image = models.ImageField(blank=True, upload_to='media/')
    description = models.TextField()

然后在后台注册类:

class ImageInlineAdmin(admin.InlineModelAdmin):
    extra = 0
    model = Image

然后在你的 contentimage admin 中用一行注册内联:

inlines = [ImageInlineAdmin]

【讨论】:

以上是关于如何在 django 模型中从一个字段添加多个输入的主要内容,如果未能解决你的问题,请参考以下文章

Django-如何在一个字段中添加同一模型的多个实例

如何在 Django 中从 2 个不同的模型对象创建表单对象?

如何在django中为问题添加多个表单字段类型的选项?

如何在 Django 中向模型添加临时字段?

如何在 django 2.0.4 中从我的专辑模型自动生成 slug

如何在 Django 中向 ModelForm 添加外键字段?