Support setting initial values on backend form instances
authorMagnus Hagander <magnus@hagander.net>
Wed, 23 May 2018 17:46:25 +0000 (19:46 +0200)
committerMagnus Hagander <magnus@hagander.net>
Wed, 23 May 2018 17:46:25 +0000 (19:46 +0200)
postgresqleu/confreg/backendforms.py
postgresqleu/confreg/backendviews.py

index 41f2dce6c3529e21d51807ecf410bcef93a6233d..87fc78f9ea4aada41efa9b068b164740dd1b2cf4 100644 (file)
@@ -91,6 +91,10 @@ class BackendForm(ConcurrentProtectedModelForm):
        def fix_fields(self):
                pass
 
+       @classmethod
+       def get_initial(self):
+               return {}
+
        @classmethod
        def get_field_verbose_name(self, f):
                if f in self.verbose_field_names:
index 151d9667320f7ca92f94f010912f84936e121b43..dcd38fa0bfe9e15a7f53e318fb1acf8ba6801bb1 100644 (file)
@@ -77,6 +77,10 @@ def backend_process_form(request, urlname, formclass, id, cancel_url='../', save
                else:
                        # No special form_before_new, so just create an empty instance
                        instance = formclass.Meta.model(conference=conference)
+
+               # Set initial values on newly created instance, if any are set
+               for k,v in formclass.get_initial().items():
+                       setattr(instance, k, v)
        else:
                if bypass_conference_filter:
                        instance = get_object_or_404(formclass.Meta.model, pk=id)