首页 > 解决方案 > 使用 Django 创建数组列表

问题描述

大约一年前,我开始用 PyQt5 编写我的第一个应用程序,其中有很多领域: 在此处输入图像描述 我知道它不好看,但重点是学习 PyQt5。现在我想让它在移动设备上可用。既然学过IT的人很多都懂Java,我想我有更好的机会得到第一份工作,知道Django + Javascript/jQuery。这是一个问题:每个“F1、F2、F3”都是一个单独的小部件。手机屏幕很小,所以我想一一显示。最简单的方法可能是这种方式(.html),但也许有更好的方法:

{% for field in GoldArrays %}
<p>{{field.text}} <input type="number" name="textfield"> {{field.number}}</p>
{% endfor %}

它适用于 F3/F4 小部件。'text' 将返回 200zl、100zl 等,数字只是一个 DecimalField。

问题是我对 Web 开发和 Django 非常陌生。据我了解,我应该为每个小部件创建一个单独的模板。我想在按下“下一步”按钮后从小部件中收集数据,然后将其存储到 SQLite 数据库中,以便保存进度。我应该将 sql 查询放在views.py 中吗?forms.py 和 models.py 中应该包含什么?高度赞赏两个用户输入的示例。

这是下一个问题...有一个不错的机会,我想为许多字段设置一些规则,例如突出显示值以便用户不需要删除该值,或者自动设置 0 以防万一是 None 作为输入。我知道我以后可以用 JS 做到这一点,但我可以用 Django 做到吗?我希望编写一个易于维护的代码。

请帮忙 :)

标签: djangopython-3.xlogic

解决方案


使用视图(Django 中的控制器),您可以添加上下文数据。

它具有下一个结构:

{% for item in form_set %}
    {{ item }}
{% endfor %} 

Jinja2 是模板语言,所以后端的所有变量都必须写在括号中

{{ each_var_from_django }}

视图将是下一个:

class CreateOrderView(LoginRequiredMixin, CreateView):
    template_name = 'dashboard/index.html'
    success_url = reverse_lazy('namespace:url')

    def get_context_data(self, *args, **kwargs):
        ctx = super().get_context_data(**kwargs)
        ctx['form_set'] = Model.objects.filter()
        return ctx

推荐阅读