你好伙计我新的Django(我刚刚完成了教程),但我想我理解它的基本概念。我写在这里,因为我试图做一些“困难”使用Django的经验和搜索互联网没有给我一个解决方案。我试图做的是创建一个基于另一个模型的条目数量的动态模型。更准确地说,我可以说我有以下型号:基于查询的动态Django模型
class criteria(models.Model):
criteria_text = models.CharField(max_length=200)
monotonicity = models.CharField(max_length=1,choices=(('+','ASCEDING'),('-','DESCENDING')),default='+',verbose_name='Monotonicity')
worst = models.IntegerField(default=0)
best = models.IntegerField(default=0)
我想要做的是通过django管理面板创建所需的所有标准模型实例,然后查询数据库中的所有creteria_text实例,并为每个criteria_text实例创建一个具有属性的模型。
因此,可以说我将以下条件添加到数据库中(这些标准criteria_text属性的对象:颜色,重量,价格
我想用这样的模型就结了。
class Alternative(models.Model):
Color = models.IntegerField(default=0)
Weight = models.IntegerField(default=0)
Price = models.IntegerField(default=0)
的事情是,在我的应用程序这其中有情况发生了很多次,所以我不能让模型每次有人添加了基于不同标准的替代品。
搜索我发现我可以定义使用动态模型后格式如下:
attrs = {
'name': models.CharField(max_length=32),
'__module__': 'myapp.models'
}
Animal = type("Animal", (models.Model,), attrs)
所以,问题是我如何定义基于该得到所有标准数据库查询“ATTRS”?我可以定义与其他模型这个动态模型的关系?另外,如果用户添加更多标准,则应该更新已创建的模型。
是这样的可能吗? 如果是这样,请告诉我路径。
我不认为定义动态模型是一个很好的解决方案(或任何地方,真的)。相反,您需要一个可以拥有与标准实例一样多的项目的关系。 –
模型类定义不会在数据库中创建任何表格,除非您迁移它。您可以动态创建类,但是任何模型操作都会导致错误 –
@Daniel Roseman:我有点困惑,关系是写在模型上的吗?我仍然需要更新模型本身。也可以说,你说的是有效的,那么我将不得不手动为每条标准逐行添加值,并选择标准。我期望的是获得整数字段在上面的标准文本的单行上。如果我错过了某些东西或我在路上,请阻止我。 –