Take a model or a string of the form "app_label.ModelName" and return a corresponding ("app_label", "modelname") tuple. If a tuple is passed in, assume it's a valid model tuple already and return it unchanged.
(model)
| 3 | |
| 4 | |
| 5 | def make_model_tuple(model): |
| 6 | """ |
| 7 | Take a model or a string of the form "app_label.ModelName" and return a |
| 8 | corresponding ("app_label", "modelname") tuple. If a tuple is passed in, |
| 9 | assume it's a valid model tuple already and return it unchanged. |
| 10 | """ |
| 11 | try: |
| 12 | if isinstance(model, tuple): |
| 13 | model_tuple = model |
| 14 | elif isinstance(model, str): |
| 15 | app_label, model_name = model.split(".") |
| 16 | model_tuple = app_label, model_name.lower() |
| 17 | else: |
| 18 | model_tuple = model._meta.app_label, model._meta.model_name |
| 19 | assert len(model_tuple) == 2 |
| 20 | return model_tuple |
| 21 | except (ValueError, AssertionError): |
| 22 | raise ValueError( |
| 23 | "Invalid model reference '%s'. String model references " |
| 24 | "must be of the form 'app_label.ModelName'." % model |
| 25 | ) |
| 26 | |
| 27 | |
| 28 | def resolve_callables(mapping): |
no test coverage detected