【问题标题】:Create a list of arrays using Django使用 Django 创建数组列表
【发布时间】:2019-12-07 20:08:29
【问题描述】:

大约一年前,我开始用 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如果没有任何输入。我知道我以后可以用 JS 做到这一点,但我可以用 Django 做到吗?我希望写一个代码,易于维护。

请帮忙:)

【问题讨论】:

    标签: django python-3.x logic


    【解决方案1】:

    使用视图(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
    

    【讨论】:

    • 感谢您的回答。这不是我要求的,但仍然有用 :) 我正在编写并思考那个示例代码,这就是为什么一个变量没有{{}}。说实话,名字可能也应该改变,这样使用JS会更容易。这就是设计中的一切。您在这里使用 CreateView 和 get_context_data。我正在考虑使用if form.is_valid(): subject = form.cleaned_data['subject'] 这对我来说更清楚,因为我从每个字段中获得了单独的值,我可以将每个小部件存储在一个列表中。有什么理由“按你的方式”做吗?
    • 我认为你应该在你的 django 模型中使用不同的整数字段。你可以将它们分开我的课程(主题,你想要),然后在 Jinja 中使用它。
    • 你能举个例子吗?我知道我需要将它们分开,但正如我所说,我希望能够在一行中更改许多字段的某些属性。有100多个领域。例如,我想将默认值设置为零。最好只遍历所有字段并以这种方式为所有字段设置属性。
    • 不同的整数字段?有任何想法吗?我使用了 DecimalField 和简单的数字输入,稍后我将在其中添加限制。同样,用 Django 设置限制会很好,我不知道如何通过用户输入来做到这一点。
    猜你喜欢
    • 2011-01-26
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 2019-11-21
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    相关资源
    最近更新 更多