Я хочу создать представление, способное отображать ModelForm для различных моделей.Это достигается путем получения типа содержимого модели и последующего динамического создания экземпляра модели, связанной с этой конкретной моделью.Вот моя модель:
from django.db import models
class SomeModel(models.Model):
name = models.CharField(max_length=150)
def __unicode__(self):
return self.name
И внутри того же приложения есть файл forms.py со следующей формой:
from django.forms import ModelForm
from someapp.models import SomeModel
class SomeModelForm(ModelForm):
class Meta:
model = SomeModel
fields = ('name',)
Итак, что я хочу сделать внутри моего файла представлениявозвращает правильную форму для каждой модели динамически.Я попробовал следующее:
from django.db import models
from someapp.forms import SomeModelForm
class SomeModel(models.Model):
name = models.CharField(max_length=150)
form = SomeModelForm
def __unicode__(self):
return self.name
Но это не работает из-за очевидного циклического импорта.Кто-нибудь знает, как я могу добиться этого?Я пытался играть с modelform_factory, но, похоже, он игнорирует любую из моих пользовательских форм моделей в forms.py.
EDIT: Я должен упомянуть, что у меня не будет экземплярамодель, только сам класс модели, поэтому наличие метода, который внутри модели не работает (однако он работает, если вы вызываете его для экземпляра модели)