假设我有一个CreateView,它使用ModelForm添加一个新的日历事件。有时,在添加新的日历事件时,必须在新事件之前添加另一个日历事件才能成功验证新事件(发生在模型窗体.clean()方法)。我认为唯一可以添加这个其他事件的地方是clean方法,就在验证新事件之前。这是我唯一能做这件事的地方,对吗?我想让用户知道这是使用Django消息发生的,但是我当然不能访问ModelForm中的request对象。这让我觉得我必须在另一个地方加入这个活动。CreateView的哪种方法适合这个目的?你知道吗
我对我的英语很抱歉,如果我的问题措辞不够好的话。提前谢谢。你知道吗
如果您不使用ModelForm,而是使用自定义表单,那么您可以更好地控制操作。然后您可以将请求传递给表单,并在清理过程中使用它。你知道吗
以下是我的一个表单的示例,我需要访问该表单以请求保存表单内容:
以类似的方式你可以访问自我要求用干净的方法。你知道吗
在视图中实例化窗体,如下所示:
如果您真的想访问表单中的request对象,可以重写CreateView中的
get_form_kwargs
方法(这将提供对自我要求在表单的干净方法中):但是,对于您的场景,最好在视图中的form\u valid方法中进行验证。如果验证失败,可以设置消息,然后调用form\u invalid(),用错误消息重新呈现表单。你知道吗
相关问题 更多 >
编程相关推荐