我正在尝试将我安装的模型作为选择组选择。
我必须在我的模型中完成,而不是形式。
到目前为止,我试过了。def get_installed_model_choices():
returnval = []
for app in settings.SYSTEM_INSTALLED_APPS:
app_config = apps.get_app_config(app)
app_models = app_config.get_models()
model_choices = []
for model in app_models:
model_choices.append([model._meta.model_name, model._meta.verbose_name])
returnval.append([app_config.verbose_name, model_choices])
print returnval
return returnval
在我的模范领域。
model = custom_model_fields.PanNoneBlankCharField(choices = get_installed_model_choices(),verbose_name=_('model'),
max_length=20)
我收到此错误。
"Models for app '%s' haven't been imported yet." % self.label)
第二种方法: 这是我在互联网上看到的东西,
def __init__(self, *args, **kwargs):
super(PanUserModelPermissions, self).__init__(*args, **kwargs)
self._meta.get_field('model')._choices = \
lazy(get_installed_model_choices, list)()
这也没有效果,没有影响
我不希望选择是静态的,无论如何要实现这个目标吗?
答案 0 :(得分:0)
如果您只想从模型中进行选择,可以将content_type用作:
from django.contrib.contenttypes.models import ContentType
content_type = models.ForeignKey(ContentType,
null=True,
blank=True,
verbose_name=u'content_type ')
更多信息here。