общие взгляды CRUD на Джанго - PullRequest
1 голос
/ 20 октября 2011

Я пытаюсь создать общие представления для своих моделей, и я застрял в динамическом создании модели.Есть ли способ создать модель, просто используя имя модели в виде строки?

1 Ответ

4 голосов
/ 20 октября 2011

Вы можете сделать это, просто определив класс для формы модели в локальной области представления, а затем сразу же создав его экземпляр.Вам просто нужно убедиться, что вы получаете класс модели по названию.Используйте функцию Джанго get_model.Простой пример:

def my_view(request):
    model_name = "myapp.MyModel"   #make sure the app name is also provided
    from django.db.models import get_model
    model_class = get_model(*model_name.split('.'))

    class MyModelForm(ModelForm):
        class Meta:
            model = model_class
        # other attributes of the form

    form = MyModelForm()
    # ... 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...