Django - 存储为视图/模板动态创建的数据的最佳方式

时间:2016-06-29 08:30:46

标签: python django

我需要以

的格式向模板发送一些数据
template_name: RTR-01
device_name: EDGE

templte_name: RTR-02
device_name: EDGE

template_name: SW-01
device_name: CORE

等等。

我知道我不能使用列表,因为它们只允许一个值,一个类最适合吗?以及我如何动态创建课程?此数据也不会存储在动态构建的数据库中

编辑:

下面的动态数据的当前配​​置,我采用格式为STR-RTR-01的模板名称,然后我将位置名称放在中间以制作STR-UK-RTR-01。在我的字典中,我需要前后结果,如何以这种方式动态创建字典?

showroom_devices = []
for item in config_templates:
    if item['device_name'].startswith("STR-"):
        device = item['device_name']
        completed_device_name = device[:4] + modelShowroom.location.upper()[:4] + "-" + device[4:]
        showroom_devices.append(completed_device_name)

由于

2 个答案:

答案 0 :(得分:1)

您可以将数据存储在词典列表中:

data = [
    {
        "template_name": "RTR-01",
        "device_name": "EDGE"
    },
    {
        "template_name": "SW-01",
        "device_name": "CORE"
    },
]

然后,您需要通过覆盖render_to_response方法来更新模板的上下文。

def render_to_response(self, context, **kwargs):
    context.update({"data": data})
    return super().render_to_response(context, **kwargs)

然后你可以在模板中进行迭代

<ul>
{% for item in data %}
<li>{{item.template_name}}</li>
<li>{{item.device_name}}</li>
{% endfor %}

答案 1 :(得分:0)

list dict似乎最合适:

context = [
    {
        'template_name': 'RTR-01',
        'device': 'EDGE',
    },
    {
        'template_name': 'RTR-02',
        'device': 'EDGE',
    },
    {
        'template_name': 'SW-01',
        'device': 'CORE',
    },
]

当您想要将行为与数据相关联时,可以使用类,而这似乎并非如此。