django-dynamic-models
django-dynamic-models copied to clipboard
Related managers not created properly if related model generated after parent model
Steps to Reproduce
model_schema = ModelSchema.objects.create(name="SimpleModel")
related_model_schema = ModelSchema.objects.create(name="RelatedModel")
FieldSchema.objects.create(
name="related",
model_schema=model_schema,
class_name="django.db.models.ForeignKey",
kwargs={
"to": another_model_schema.model_name,
"on_delete": models.CASCADE,
"related_name": "parent_objects",
},
)
model = model_schema.as_model()
related_model = related_model_schema.as_model()
related_instance = related_model.objects.create()
model_instance = model.objects.create(related=related_instance)
related_instance.parent_objects
AttributeError: "parent_objects" does not exist
Workaround
Call related_model_schema.as_model() before `model_schema.as_model(). This works for some reason