Django createview自定义验证

时间:2018-10-01 07:46:46

标签: django django-validation

我正在使用createview创建模型的几个字段。我想为表单中的属性提供自定义验证。我不确定如何通过CreateView做到这一点。我不想为此创建一个Modelform。

通常,属性的自定义验证是通过clean_attr()方法以表格形式执行的。那么,有什么方法可以在createview中执行此操作吗?

我的createview类

@method_decorator(never_cache, name='dispatch')
class AppCreateView(LoginRequiredMixin, CreateView):
    model = models.App
    fields = ['name', 'background', 'font', 'textcolor']

    def get_context_data(self, *args, **kwargs):
        context = super(AppCreateView, self).get_context_data(*args, **kwargs)
        context['view'] = 'create'
        return context

在这些字段中,我不包括一个称为“日期”的字段(必须是今天)。有什么方法可以在CreateView中设置date属性?

谢谢

更新

我的问题

  1. 如何在AppCreateView中进行自定义验证?

  2. 如何填充用户填充的其他属性(例如日期)?

1 个答案:

答案 0 :(得分:0)

如果要执行此操作,可以在模型上添加validatorsCreateView会捕获https://docs.djangoproject.com/en/2.1/ref/validators/

对于日期,只需在您的字段中添加:

my_field = models.DateTimeField(auto_now=True) #the date will be timezone.now() when you save the instance.