]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
netcmd: models: ModelMeta needs to also set fields and meta if class is Model
authorRob van der Linde <rob@catalyst.net.nz>
Wed, 21 Feb 2024 01:11:52 +0000 (14:11 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 1 Mar 2024 04:45:36 +0000 (04:45 +0000)
This is needed for polymorphic query, if querying from the Base model, which was not previously a feature.

Signed-off-by: Rob van der Linde <rob@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
python/samba/netcmd/domain/models/model.py

index 5f50014a172840fee659104c5af790c84b11dfea..62cc0bbc0f2c5e87e06ee5cfa07703f2a4b44712 100644 (file)
@@ -39,11 +39,11 @@ class ModelMeta(type):
 
     def __new__(mcls, name, bases, namespace, **kwargs):
         cls = super().__new__(mcls, name, bases, namespace, **kwargs)
+        cls.fields = dict(inspect.getmembers(cls, lambda f: isinstance(f, Field)))
+        cls.meta = mcls
         object_class = cls.get_object_class()
 
         if cls.__name__ != "Model":
-            cls.fields = dict(inspect.getmembers(cls, lambda f: isinstance(f, Field)))
-            cls.meta = mcls
             MODELS[object_class] = cls
 
         return cls