【发布时间】:2018-01-13 03:06:27
【问题描述】:
我正在使用 django v1.10.2
我正在尝试创建动态报告,从而将字段和条件以及主要的 ORM 模型信息存储到数据库中。
我生成动态报告的代码是
class_object = class_for_name("app.models", main_model_name)
results = (class_object.objects.filter(**conditions_dict)
.values(*display_columns)
.order_by(*sort_columns)
[:50])
所以main_model_name 可以是任何东西。
这很好用,只是 main_model 的关联模型有时具有 choicefield。
因此,main_model 的一份报告是Pallet。Pallet 有很多PalletMovement。
我的显示栏目是:serial_number,created_at,pallet_movement__location
前两列是属于Pallet 模型的字段。
最后一个来自PalletMovement
PalletMovement 模型看起来像这样:
class PalletMovement(models.Model):
pallet = models.ForeignKey(Pallet, related_name='pallet_movements',
verbose_name=_('Pallet'))
WAREHOUSE_CHOICES = (
('AB', 'AB-Delaware'),
('CD', 'CD-Delaware'),
)
location = models.CharField(choices=WAREHOUSE_CHOICES,
max_length=2,
default='AB',
verbose_name=_('Warehouse Location'))
由于查询集将返回原始值,我如何利用PalletMovement 模型中的choicefield 来确保pallet_movement__location 给我显示AB-Delaware 或CD-Delaware?
请记住,main_model 可以是任何东西,具体取决于我在数据库中存储的内容。
大概,我可以在数据库中存储更多信息,以帮助我更好地过滤和呈现数据。
【问题讨论】:
-
嘿,@KimStacks 我想知道,你觉得任何答案有帮助吗?
标签: python django django-queryset django-orm choicefield