0

我想在 django 中使用动态字段意味着我有一个模型,它的一个模型是在另一个模型中指定的。

我希望我能通过例子向你解释。

我有一个型号名称产品,每次上传新产品时,我们都必须为其设置一些属性,并且在第二张表中指定了这些属性,这意味着在这个产品型号中,一个字段是动态的,它取决于第二张表。如果我在其他表中选择“x”,则该字段显示在此处,如果我选择“y”,则该字段将显示在此处,因此基于该产品 ID 和属性 ID,我可以在第三个表中指定属性值,以便将来我可以为指定的产品获取该值。

我已经尝试了很多,但我不知道如何在 django 中使用动态字段,所以任何人都可以让我知道如何做到这一点。

谢谢

4

1 回答 1

1

我建议您为此目的使用 django-json-field ( https://github.com/derek-schaefer/django-json-field )。它仅使用数据库中的一个 Text 字段,但您可以像访问 python 对象一样访问 json 中的对象:

json = JSONField() #in your model
json = "{'attributes':{'colour':'blue','size':'2'}, 'image-height':'200px'}" # in your db
{{product.json.attributes}} #in your template
product.json.attributes #in your views

这是制作许多“django”字段的好方法,同时仅将其存储在 db 中的一个 Text 字段中。

这种方法的缺点是不能有效地使用数据库搜索字段,但是如果您有几十个产品,您可以在视图中通过python进行过滤。

于 2012-10-08T09:09:52.383 回答