Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class FooAdminForm(forms.ModelForm):
- json_serializer = serializers.get_serializer("json")()
- # TODO: make it hide the colon before our empty label
- # TODO: figure out how not to break encapsulation to set the value
- orig_model_json = forms.CharField(widget=forms.HiddenInput, label="")
- def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
- initial=None, error_class=ErrorList, label_suffix=':',
- empty_permitted=False, instance=None):
- super(CaseAdminForm, self).__init__(data, files, auto_id, prefix, initial,
- error_class, label_suffix, empty_permitted, instance)
- if instance:
- omj = self.fields["orig_model_json"]
- omj.initial = self.json_serializer.serialize((instance,), ensure_ascii=False)
- class Meta:
- model = Foo
- def clean(self):
- omj = self.fields["orig_model_json"]
- print "omj:",omj.initial
- if omj.initial:
- current_model_json = self.json_serializer.serialize((self.instance,), ensure_ascii=False)
- if current_model_json != omj.initial:
- raise forms.ValidationError("Record has changed since you started editing it.")
- return self.cleaned_data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement