簡體   English   中英

Django-存儲為視圖/模板動態創建的數據的最佳方法

[英]Django - best way of storing data created on the fly for a view/template

我需要以以下格式將一些數據發送到模板

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)

謝謝

您可以將數據存儲在詞典列表中:

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 %}

dict list似乎最適合:

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

當您想要將行為與數據相關聯時,可以使用類,而在這里似乎並非如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM