Python 如何在Django db的字符字段中放置图像引用?

Python 如何在Django db的字符字段中放置图像引用?,python,django,model,char,imagefield,Python,Django,Model,Char,Imagefield,我正在使用Django制作一个电子学习网站。该网站将有问题和答案选项,用户必须从中选择正确的答案。大多数答案选项都是文本,因此我将模型中的选项声明为CharField class Question(models.Model): question = models.CharField(max_length=250) option_1 = models.CharField(max_length=50) option_2 = models.CharField(max_length=50) option

我正在使用Django制作一个电子学习网站。该网站将有问题和答案选项,用户必须从中选择正确的答案。大多数答案选项都是文本,因此我将模型中的选项声明为CharField

class Question(models.Model):
question = models.CharField(max_length=250)
option_1 = models.CharField(max_length=50)
option_2 = models.CharField(max_length=50)
option_3 = models.CharField(max_length=50)
option_4 = models.CharField(max_length=50)
但我意识到,在一些问题中,有图像作为选项,而不是文本字段。例如,将有四个图像而不是文本,用户必须在其中选择一个答案。
如何在模型中包括ImageField和CharField作为答案选项?

一个选项是插入8个字段,并在所有字段上设置
blank=True
。然后,当您添加问题时,您可以决定使用哪些字段

像这样:

class Question(models.Model):
    question = models.CharField(max_length=250, blank=True)
    text_1 = models.CharField(max_length=50, blank=True)
    text_2 = models.CharField(max_length=50, blank=True)
    text_3 = models.CharField(max_length=50, blank=True)
    text_4 = models.CharField(max_length=50, blank=True)
    image_1 = models.ImageField(upload_to='question_images', blank=True)
    image_2 = models.ImageField(upload_to='question_images', blank=True)
    image_3 = models.ImageField(upload_to='question_images', blank=True)
    image_4 = models.ImageField(upload_to='question_images', blank=True)
我相信有更优雅的方法来实现这一点,但这是第一次想到


但是顺便说一句,最好有单独的问答模式。

非常感谢!但是,当我使用循环引用所有问题时,有些问题会有文本字段,有些问题会有图像字段!那我该怎么办呢?因为它是一个可选字段,如果没有填写,它就不应该出现在循环的
中。至少这是我的理解。