我需要构建一个具有动态参数的通用django对象。这是从一个对象到另一个对象可能不同的参数。我无法创建不同的模型,因为参数可以随时更改,我不想使用PickledField,因为SQL数据库应该在python外部访问。
我制作了这些模型:
class DynamicObject(models.Model):
uuid = UUIDField(primary_key=True, editable=False)
synopsis = models.CharField(max_length=64)
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
class DynamicObjectParam(models.Model):
obj = models.ForeignKey(DynamicObject,related_name='params')
name = models.CharField(max_length=30)
value = models.CharField(max_length=255)
To list parameters for a particular object, I do :
obj = DynamicObject.objects.get(uuid='xxx')
for p in obj.params:
print p.name,p.value
很容易 但是,如何选择具有特定参数的对象,例如: 什么是DynamicObjects,其参数名为“server_name”,值为“Sun SF25K”?
答案 0 :(得分:0)
尝试一下:
results = DynamicObject.objects.filter(params__name__exact='server_name',params__value__exact='Sun SF25K')
答案 1 :(得分:0)
DynamicObject.objects.filter(params__name='server_name', params__value='Sun SF25K')