Django 1.11在一个execu中形成多个数据提交

2024-09-29 17:15:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为shift的表单

我的forms.py

class ShiftForm(forms.ModelForm):

    class Meta:
        model = Shift
        fields = '__all__'

并为我的createviewshift

我的views.py

^{pr2}$

我已经创建了表单模板,就像这样。在

enter image description here

它的工作和数据被提交到我的数据库中,想象一下我的数据库表是这样的:

#table shift
+---------------+---------------+---------------+---------------+------------+------------+-------------+
| start         | end           | off_start     | off_end       | time       | user_id    | shift_id    |
+---------------+---------------+---------------+---------------+------------+------------+-------------+
| 2018-01-01    | 2018-01-05    | 2018-01-06    | 2018-01-07    | 07:00      | 1          | 1           |
| ....          | ....          | ....          | ....          | ....       | ....       | ...         |
+---------------+---------------+---------------+---------------+------------+------------+-------------+

我的问题是如何使它成为一种形式的多重性?。。。在

例如:

enter image description here

所以在我的数据库表上,在single submit中会像这样。在

#table shift
+---------------+---------------+---------------+---------------+------------+------------+-------------+
| start         | end           | off_start     | off_end       | time       | user_id    | shift_id    |
+---------------+---------------+---------------+---------------+------------+------------+-------------+
| 2018-01-01    | 2018-01-05    | 2018-01-06    | 2018-01-07    | 07:00      | 1          | 1           |
| 2018-01-01    | 2018-01-05    | 2018-01-06    | 2018-01-07    | 07:00      | 1          | 2           |
| 2018-01-01    | 2018-01-05    | 2018-01-06    | 2018-01-07    | 07:00      | 1          | 3           |
| 2018-01-01    | 2018-01-05    | 2018-01-06    | 2018-01-07    | 07:00      | 1          | 4           |
| ....          | ....          | ....          | ....          | ....       | ....       | ...         |
+---------------+---------------+---------------+---------------+------------+------------+-------------+

在我上面的例子中,它在一次执行中提交了4次。在

谢谢你!在


Tags: pyid数据库表单shifttimetableforms
1条回答
网友
1楼 · 发布于 2024-09-29 17:15:52

在前端,将onclick属性添加到save按钮,并调用一个函数以JSON格式排列数据,使其看起来如下所示:

{
  "employee": "xyz" ,
  "weeks_schedule" :[
    {"data_week": "value_1", "data_off_week": "value_2", "shift": "value_3"},
    {"data_week": "value_4", "data_off_week": "value_5", "shift": "value_6"},
                    .
                    .
                    .
  ]
}

当然,在函数的末尾,在这个JSON中整理数据之后,将其发布到正确的URL。在

在您看来,您应该通过添加一个编写良好的post方法来处理此JSON:

^{pr2}$

如果您想在不使用json的情况下执行此过程,只需提交表单,而不是行:

 json_data = json.loads(request.body.decode('utf-8'))

^{4}$

记住要像在json中一样手动清理、验证和保存表单中的数据,因此如果您运行print(请求.POST)您会注意到您的数据看起来像:

<QueryDict: {'employee': 'xyz', 'off_week': 'xyz_2' ......}>

当然,你的问题看起来会不同,但如果你知道它的样子,你应该能够处理它。在

相关问题 更多 >

    热门问题