from codenerix.views import GenUpdate, GenUpdateModal
class ModelNameUpdate(GenUpdate):
model = ModelName
form_class = ModelNameFormCreate
class ModelNameUpdateModal(GenUpdateModal, ModelNameUpdate):
pass
GenUpdate and GenUpdateModal are generic classes of Cdenerix used to generate a form automatically that handle the task of editing objects and their validation. Is recomended that the name of each class which inherit from GenUpdate or GenUpdateModal follow this pattern: NameModel+Update or NameModel+UpdateModal respectively. Both GenUpdate and GenUpdateModal usually are created at the same time.
If model is User, then, GenUpdate declarations should be, class UserUpdate(GenUpdate):
If model is User, then, GenUpdateModal declarations should be, class UserUpdateModal(GenUpdateModal):
Is the form that will be rendered in the template.
If False hide the add button at the right of the fields with a GenForeignKey (Default value is False).
If True, Codenerix don’t show delete button (Default value is False).
Model used to generate and validate the form.
If True, after save a new register the view will move to the associated GenDetail and GenDetailModal (Default value is False).
class ModelNameUpdate(GenUpdate):
model = ModelName
form_class = ModelNameForm
class ModelNameUpdate(GenUpdate):
model = ModelName
form_class = ModelNameForm
show_details = True
hide_foreignkey_button = True
class ModelNameUpdateModal(GenUpdateModal):
model = ModelName
form_class = ModelNameForm
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
self.__field_pk = kwargs.get('tpk', None) # Is important that the url don't use the label pk or will fail.
return super(ModelNameUpdateModal, self).dispatch(*args, **kwargs)
def form_valid(self, form):
if self.__field_pk:
data = ModelNameFather.objects.get(pk=self.__field_pk)
self.request.field = data
form.instance.field = data
return super(ModelNameUpdateModal, self).form_valid(form, forms)