首页 > 解决方案 > 如何根据选择设置模型字段数据类型?

问题描述

在我的模型中,我想根据选择值设置选项值。我怎样才能做到这一点或任何其他解决方案?

class MyModel(models.Model):
    title = models.ForeignKey(Title, on_delete=models.CASCADE)
    option_name = models.CharField(max_length=200)
    option_value_choices = [
        (1, "models.BooleanField"),
        (2, "models.DateField"),
        (3, "models.IntegerField"),
        (4, "models.CharFIeld")
        ]

    option_value_type = models.IntegerField(choices=option_value_choices)
    option_value =  .. ?

标签: pythondjangodjango-models

解决方案


我认为这是不可能的。

但是您可以使用可为空选项添加四个字段(每个模型字段一个):

例子:

    boolean_option_value = models.BooleanField(null=True)
    integer_option_value = models.IntegerField(null=True)
    date_option_value = models.DateField(null=True)
    char_option_value = models.CharField(null=True)

因此,在您的有效负载中,将所有四个字段都发送为空。

并且根据option_value_type字段,您可以填写相应的字段。


推荐阅读