Django:如何在表单字段和模型字段之间实现逻辑映射?

时间:2012-03-27 18:28:53

标签: django

如果我有:

class MyForm(ModelForm):
    class Meta:
        model = MyModel
    generic_field = CharField()

class MyModel(models.Model):

    field_x       = models.CharField(unique=True, null=True, blank=True)
    field_y       = models.CharField(unique=True, null=True, blank=True)
    field_z       = models.CharField(unique=True, null=True, blank=True)

并在视图中:

if request.method == 'POST':
    my_form = MyForm(
     {'field_x': generate_field_x(request.POST['generic_field']), 'field_y': generate_field_y(request.POST['generic_field']),
     'field_z': generate_field_z(request.POST['generic_field']),
     },
     request.POST)

这适用于将generic_field编组到正确的模型字段上。当存在验证错误时会发生此问题。如何将模型验证错误(field_x / y / z)编组回到generic_field?目标是让用户与generic_field,验证和所有内容无缝交互。

免责声明:1。我是Django的新手,请原谅我的帖子中的任何笨拙。我到处挖掘并到处都是砖墙,可能是因为我不知道如何恰当地说出这一点。请帮助/指出我正确的方向。

1 个答案:

答案 0 :(得分:1)

您的问题有点模糊,但听起来您希望create a custom field映射到模型中的多个具体字段,但在表单中只有一个存在。