【问题标题】:Django models problemDjango模型问题
【发布时间】:2011-08-26 14:31:11
【问题描述】:

我有一个大问题。我实现了一个包含各种字段的表单,其中 EmailFIeld 必须是可选的。

这是模型:

email = models.EmailField(max_length=50,blank=True,default='no@address.spec',
             verbose_name=_('email'), help_text=_('Email'))

但是当我对表单进行验证并返回带有可能错误的 JSON 时,我总是收到:

{'errors':'Enter a valid e-mail address'}

并且我希望能够将电子邮件字段保留为可选。我该怎么做?

【问题讨论】:

    标签: python django django-models django-forms


    【解决方案1】:

    我记得,如果用户不删除指定的地址,默认意味着该字段不会为空。所以这个验证错误可能是由于.spec,尝试用.com替换它。您还可以在模型中添加null = True,在表单类中添加required = False

    【讨论】:

      【解决方案2】:

      如果您最初设置模型时需要电子邮件,则更改它并运行 syncdb 不足以更改底层 SQL 以允许不需要该字段。

      如果您没有任何重要数据并且有能力擦除数据库,则可以运行python manage.py flush。这将清除所有数据并从头开始运行 syncdb。

      更好的选择是运行数据库迁移以将 sql 更新为 django 模型。到目前为止,Django 最流行的选项是South。这是一个几乎必不可少的工具,现在是将其添加到您的曲目中的好时机。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-06
        • 2012-05-24
        • 2021-04-23
        • 2021-09-07
        • 2010-11-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多