我正在尝试扩展Django的Poll应用程序。每个民意测验将有2个选择,每个选择都有一个图像或每个选择都有一个颜色,但不能同时有两个。我的模型如下:
class Question(models.Model):
question = models.CharField()
created_at = models.DateTimeField(auto_now_add=True)
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice = models.CharField(max_length=120)
vote_count = models.IntegerField(default=0)
class ChoiceImage(models.Model):
choice = models.OneToOneField(Choice, on_delete=models.CASCADE)
img = models.ImageField()
class ChoiceColor(models.Model):
choice = models.OneToOneField(Choice, on_delete=models.CASCADE)
color = models.CharField(max_length=7)
一个选项可以具有2张图像或2种颜色,但不能同时具有两者。一个问题有2个选择。就颜色和图像而言,这是实现的好设计吗?有一个更好的方法吗?我应该为选择模型创建2个字段,而不是将颜色和图像分为两个不同的模型吗?