【发布时间】:2012-02-13 16:37:40
【问题描述】:
我想创建一个能够为各种不同模型显示 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 中的任何自定义模型表单。
编辑:我应该提到我不会有模型的实例,只有模型类本身,所以在模型内部有一个方法不起作用(它确实,但是,如果您在模型的实例上调用它,则可以使用)
【问题讨论】:
-
响应您的编辑,您可以使用静态方法或类方法。我更新了我的示例。
标签: django