不同的形式取决于Django中的对象状态

时间:2015-06-04 12:53:58

标签: python django django-models django-forms django-templates

我的模型- (void)cameraChanged:(NSNotification *)notification { if(self.imagePickerController.cameraDevice == UIImagePickerControllerCameraDeviceFront) { self.imagePickerController.cameraViewTransform = CGAffineTransformIdentity; self.imagePickerController.cameraViewTransform = CGAffineTransformScale(self.imagePickerController.cameraViewTransform, -1, 1); if (self.imagePickerController.cameraOverlayView) { NSLog_DEBUG(@"self.imagePickerController.cameraOverlayView is not nil"); } else { NSLog_DEBUG(@"self.imagePickerController.cameraOverlayView is nil"); } self.imagePickerController.cameraOverlayView.transform = CGAffineTransformScale(self.imagePickerController.cameraViewTransform, -1, 1); } else { self.imagePickerController.cameraViewTransform = CGAffineTransformIdentity; } } 包含字段Order。根据订单的状态,用户在尝试更新订单时应看到不同的内容。

因此,如果订单处于待处理状态,我想显示一些字段,当用户成功提交表单时,订单状态应更改为其他状态等。

我想我可以使用UpdateView并覆盖statusget_form_classform_valid。在get_form_class中,我可以根据状态返回要使用的表单类,在form_valid中,我可以确保状态将更改为新状态。

这是最好的方法吗?或者我应该为每个用例单独制作视图吗?

当订单被接受时,我希望用户确认哪个实际上不需要任何字段。那么也许最好为每个用例使用单独的视图或者什么?

1 个答案:

答案 0 :(得分:0)

如果表单彼此非常不同,则根据状态编写2个单独的表单并传递它们。您不需要2个不同的视图。我根据功能分割了视图,所以再次,如果两种形式都满足两个不同的目的,那么最好从不同的视角为它们提供服务。

另一种方法是使用单个表单,在模板中,您可以手动呈现表单字段,以根据您的不同状态显示字段。 here是关于拆分字段的更多信息。