欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

使用Bootstrap在Django中創(chuàng)建多個表單來更新JSONField字典中的值的最佳方式是什么?

謝彥文2年前7瀏覽0評論

我想在Django中創(chuàng)建一個更新表單,我想這并不復雜,但是我需要知道哪種方式是實現(xiàn)它的標準方式。我試著簡化它。讓我們想象一下:

models.py:

class Building(models.Model):
    """ORM representation of the Projects"""

    name = models.CharField(max_length=64, blank=False, null=False)
    project = models.JSONField(default=building_default_value, blank=False, null=False)

項目的簡化示例:

{
        "floor": {
            "Stahlbeton": 200,
            "Estrich": 50,
            "Sauberkeitsschicht": 50,
            "Abdichtung": 10,
            "Dampfsperre": 2,
            "Schaumglas": 120,
            "Extrudiertes Polystyrol (XPS)": 120,
        },
        "roofbase": {
            "Stahlbeton": 200,
            "Abdichtung": 10,
            "Dampfsperre": 4,
            "Kies": 50,
            "Extrudiertes Polystyrol (XPS)": 180,
        },
        "wall": {
            "WDVS Verklebung und Beschichtung": 15,
            "Steinwolle-Daemmstoff": 140,
            "KS-Mauerwerk": 175,
            "Gipsputz": 15,
        },
    }

現(xiàn)在,我想在我的HTML頁面中有一個更新的表單,用戶可以編輯這個材料的每個數(shù)字。例如,它應該是這樣的:

Floor:

Stahlbeton = (place to modify number)

Estrich = (place to modify number)

對于所有其他鍵也是如此。

我嘗試使用{% bootstrap_form form %},但問題是,使用這個命令,名稱和項目只有兩個表單,我無法將它分解為項目字典中的每個值有多個表單。

以下也是我的看法. py:

class BuildingUpdate(generic.UpdateView):
    """Update existing buildings"""

    model = models.Building
    fields = {"name", "project"}
    template_name = "building_update.html"
    success_url = reverse_lazy("building:buildings")

    def form_valid(self, form):

        building = form.save(commit=False)
        building.save()
        return super().form_valid(form)

我將感謝任何提示,想法或鏈接,以幫助解決這一挑戰(zhàn)。