【发布时间】:2015-05-29 05:49:21
【问题描述】:
我对 Django 很陌生。
我想为一些用户信息创建一个表单。根据用户信息的类型,字段应该改变...例如,用户的私人地址需要字段名称、街道、邮编和城市。但是如果他想把东西送到公司,可能会有更多的领域,比如部门或公司名称。
我想实现这样的东西,并在单独的应用程序中为每种输入创建一个额外的模型紧凑。
有没有办法在这个应用程序中获取一个包含所有可用模型列表的选择字段。
编辑
由于我还有一些问题,我在这里添加一个示例
文件:experiment/models.py
from django.db import models
from django.apps import apps
class BasicExperiment(models.Model):
date_created = models.DateTimeField(editable=False)
date_modified = models.DateTimeField(blank=True)
label_app = apps.get_app('labels')
label_types = apps.get_models(label_app)
文件:labels/models.py
from django.db import models
class SILAC(models.Model):
lys0 = models.BooleanField('Lys-0', default=True)
lys4 = models.BooleanField('Lys-4', default=None)
lys8 = models.BooleanField('Lys-8', default=None)
arg0 = models.BooleanField('Arg-0', default=True)
arg6 = models.BooleanField('Arg-6', default=None)
arg10 = models.BooleanField('Arg-10', default=None)
class Meta:
verbose_name = 'SILAC Labeling'
在 shell 中它按预期工作:
>>> from django.apps import apps
>>> app = apps.get_app('labels')
>>> for model in apps.get_models(app):
... model._meta.verbose_name
...
'SILAC Labeling'
在我的 models.py 中出现以下错误:
...
File "/Users/madejung/Documents/django_dev/cfproteomics/experiments/models.py", line 5, in <module>
class BasicExperiment(models.Model):
File "/Users/madejung/Documents/django_dev/cfproteomics/experiments/models.py", line 10, in BasicExperiment
label_app = apps.get_app('labels')
File "/Library/Python/2.7/site-packages/django/apps/registry.py", line 370, in get_app
"App '%s' doesn't have a models module." % app_label)
django.core.exceptions.ImproperlyConfigured: App 'labels' doesn't have a models module.
【问题讨论】:
-
你的意思是获取模型定义的所有字段吗?
-
不,不是。我知道如何从 ModelA 或 ModelB 中获取所有字段...我需要的是一种下拉菜单来选择我的应用程序中的任何模型 Model(ABCDE...)...
标签: django