class CreateTableAPIView(APIView):
    def post(self, request):
        serializer = CreateTableSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        table_name = serializer.validated_data['table_name']
        fields = serializer.validated_data['fields']

        # Create a dynamic model class
        dynamic_model_attrs = {'__module__': __name__}
        for field in fields:
            field_name=field['name']
            field_type=field['type']
            max_length=field.get('max_length',255)

            if field_type=='char':
                field_class=models.CharField(max_length=max_length)
            elif field_type== 'integer':
                field_class=models.IntegerField()
            elif field_type=='boolean':
                field_class=models.BooleanField()
            else:
                field_class=models.EmailField()
            dynamic_model_attrs[field_name]=field_class


        dynamic_model = type(table_name, (models.Model,), dynamic_model_attrs)

        # Create the database table for the dynamic model
        with connection.schema_editor() as schema_editor:
            schema_editor.create_model(dynamic_model)

        # Register the dynamic model with the app
        apps.all_models['dynamic_tables_app'][table_name] = dynamic_model

        return Response(f'Table "{table_name}" created successfully!')


On Fri, May 19, 2023 at 6:40 PM Brian Gitau <[email protected]> wrote:

> which code do you have or you want the code example explaining everything?
>
>
> On Fri, May 19, 2023 at 3:59 PM Helly Modi <[email protected]> wrote:
>
>> How to create dynamic models in django rest framework?
>>
>> Is there any chance to create dynamic models with APIs
>>
>>
>>
>> Any examples please send me thanks in advance..
>>
>>
>>
>> 1) Requirement is need create table name and fields in frontend
>>
>> 2) we are  getting the data and store in to the db create db structure
>>
>> 3) get the table name and fields create table in backend &postgresql
>> store to
>>
>> 4)this code don't update or add into the models
>>
>> 5)store the data into the tables
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/django-users/72d09483-5129-43e1-bdbb-7b92969d97c4n%40googlegroups.com
>> <https://groups.google.com/d/msgid/django-users/72d09483-5129-43e1-bdbb-7b92969d97c4n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/CAMJ3z%3D3Qn0n%2BHVefJg_B6R9RQABA88C4whqbn0g3ygo4k0gkMw%40mail.gmail.com
> <https://groups.google.com/d/msgid/django-users/CAMJ3z%3D3Qn0n%2BHVefJg_B6R9RQABA88C4whqbn0g3ygo4k0gkMw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAO-ToNXbuBKUJ0uVeRSnUNv4NUFMPCT3bZ-y86zVMcVFa5oYrg%40mail.gmail.com.

Reply via email to