How to use ModelSchema to create a dynamic model based from a exist Abstract Model?
Opened this issue · 1 comments
ramwin commented
Here is my scenario:
I want to create task table for every user, since each user may add this own dynamic fields.
def create_task_list(request):
schema = ModelSchema.objects.create(name=f"task_{request.user.id}")
# create common fields
FieldSchema.objects.create(model_schema=schema, name="status", data_type="character")
...also create common fields like create_datetime, user, update_datetime...
# create user fields
for field in request.POST['fields']:
...
How can I create an abstract model like
class TaskModel:
status = models.CharField()
create_datetime = models.DateTimeField(auto_now_add=True)
update_datetime = models.DateTimeField(auto_now=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
and use this model as a baseclass to create dynamic model like:
def create_task_list(request):
schema = ModelSchema.objects.create(name=f"task_{request.user.id}", base_model=TaskModel)
# create user fields
for field in request.POST['fields']:
...
ramwin commented
I reviewed the source code of dynamic-models, the factor will use the config.default_fields
, but this will change behaviour for all dynamic models. But I only want the user's personal task to inherate TaskModel.