小编use*_*734的帖子

Django 表单 FileField 错误“此字段是必需的”

我使用 django 生成的表单视图收到 This field is required 错误。
我有一个扫描模型,如下所示:

class Scan(models.Model):
    device = models.ForeignKey(Device, null=True, on_delete=models.SET_NULL)
    created_at = models.DateTimeField('Created', auto_now=True)
    data = models.FileField(upload_to='uploads/')

    def __str__(self):
        return str("{}-{}".format(self.device, self.created_at))
Run Code Online (Sandbox Code Playgroud)

我定义了一个 CreateView:

class ScanCreate(LoginRequiredMixin, CreateView):
    model = Scan
    fields = '__all__'
Run Code Online (Sandbox Code Playgroud)

我的网址路线是

urlpatterns = [
    ...
    path('scan/create/', views.ScanCreate.as_view(), name='scan-create'),
    ...
]
Run Code Online (Sandbox Code Playgroud)

最后是 scan_form.html 模板

    {% block content %}
  <form action="" method="post">
    {% csrf_token %}
    <table>
    {{ form.as_table }}
    </table>
    <input type="submit" value="Submit">
  </form>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

在选择要上传的文件并提交表单时,我收到“此字段为必填字段”。错误并且请求失败:

提交后“此字段为必填项。”  错误 该文件已被选择上传,那么为什么需要 django 报告字段?

forms django validation file-upload

5
推荐指数
1
解决办法
3962
查看次数

C++ vector iterator:erase()最后一项崩溃

以下代码检查球是否与砖重叠.如果发生重叠,则会从列表中突出显示并删除砖块.

当我只删除矢量brickWall中的最后一项时,我遇到了核心转储.在评论erase()行时,代码似乎运行良好.
在论坛上查看类似问题之后,我相信我正在迭代并正确地删除向量中的项目,但我怀疑情况可能并非如此.

对此代码的任何建议将不胜感激!

void Game::updateEntities()
{
    ballMother.update();
    for (std::vector<gdf::Entity>::iterator it = brickWall.begin(); it != brickWall.end(); ++it) 
    {
        if (it->getRect().intersects(ballMother.getRect())) {
            it->rect.setFillColor(sf::Color::Red);
            it = brickWall.erase(it);
        }
        else {
            it->rect.setFillColor(it->colour);                
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ crash iterator erase

2
推荐指数
1
解决办法
3379
查看次数

函数fork(&)的bash变量范围问题

我想同时运行函数f1,f2然后只有在完成后才执行操作.
似乎如果函数在脚本中是后向的,脚本f1/f2done看不到值更改,则until循环不会终止,并且不会执行最后一行.

  1. 该如何实施?

编辑 - 需要额外的功能
2.有没有办法可以读取/写入脚本中的主流程变量(不使用文件)?

谢谢你的阅读.

#!/bin/bash

f1done="false"
f2done="false"

function f1 {
    echo "f1: "
    sleep 4
    echo "f1 done."
    f1done="true"
}

function f2 {
    echo "f2: "
    sleep 2
    echo "f2 done."
    f2done="true"
}

f1 &
f2 &

until [[ "$f1done" == "true" && "$f2done" == "true" ]]; do
    echo "$f1done $f2done...";
    sleep 3;
done

echo "Both done."
Run Code Online (Sandbox Code Playgroud)

variables bash scope fork

2
推荐指数
1
解决办法
434
查看次数

在单独的线程中启动异步事件循环并使用队列项

我正在编写一个Python程序,它同时运行从队列中获取的任务,以学习 asyncio.

通过与主线程(在 REPL 内)交互,项目将被放入队列中。每当一个任务被放入队列时,它应该立即被消耗并执行。我的方法是启动一个单独的线程并将队列传递到该线程内的事件循环。

这些任务正在运行,但只是按顺序运行,我不清楚如何同时运行这些任务。我的尝试如下:

import asyncio
import time
import queue
import threading

def do_it(task_queue):
    '''Process tasks in the queue until the sentinel value is received'''
    _sentinel = 'STOP'

    def clock():
        return time.strftime("%X")

    async def process(name, total_time):
        status = f'{clock()} {name}_{total_time}:'
        print(status, 'START')
        current_time = time.time()
        end_time = current_time + total_time
        while current_time < end_time:
            print(status, 'processing...')
            await asyncio.sleep(1)
            current_time = time.time()
        print(status, 'DONE.')

    async def main():
        while True:
            item = task_queue.get()
            if item == _sentinel:
                break
            await …
Run Code Online (Sandbox Code Playgroud)

python queue concurrency task python-asyncio

1
推荐指数
1
解决办法
5656
查看次数