相关疑难解决方法(0)

Django文件上传大小限制

我的django应用程序中有一个表单,用户可以在其中上传文件.
如何设置上传文件大小的限制,以便如果用户上传的文件大于我的限制,表单将无效并且会引发错误?

django file-upload

60
推荐指数
10
解决办法
6万
查看次数

在django中为用户添加图像/头像字段

我希望我网站中的每个用户都能在他的个人资料中看到一张图片.我不需要任何缩略图或类似的东西,只需每个用户的图片.越简单越好.问题是我不知道如何将这种类型的字段插入我的用户配置文件.有什么建议?

django avatar django-users

22
推荐指数
3
解决办法
3万
查看次数

Django:批量上传并确认

还有一个关于风格和良好实践的问题。我将展示的代码可以工作并执行功能。但我想知道它是否可以作为解决方案,或者它可能太丑陋了?

由于问题有点晦涩难懂,我最后再给出一些观点。

那么,用例。

我有一个包含这些物品的网站。有一个按用户添加项目的功能。现在我想要一个通过 csv 文件添加多个项目的功能。

应该如何运作?

  1. 用户转到特殊上传页面。
  2. 用户选择 csv 文件,单击上传。
  3. 然后他被重定向到显示 csv 文件内容的页面(以表格形式)。
  4. 如果用户可以,他单击“是”(具有“confirm_items_upload”值的按钮),文件中的项目将添加到数据库中(如果可以)。

我已经看到了 django 批量上传的例子,它们看起来很清楚。但我没有找到带有中间“验证确认”页面的示例。那么我是怎么做到的:

  1. 在views.py中:上传csv文件页面的视图
def upload_item_csv_file(request):
    if request.method == 'POST':
        form = UploadItemCsvFileForm(request.POST, request.FILES)
        if form.is_valid():
            uploaded_file_name = handle_uploaded_item_csv_file(request.FILES['item_csv_file'])
            request.session['uploaded_file'] = uploaded_file_name
            return redirect('show_upload_csv_item')
    else:
        form = UploadItemCsvFileForm()
    return render(request, 'myapp/item_csv_upload.html', {'form': form})
Run Code Online (Sandbox Code Playgroud)
  1. 在utils.py中:handle_uploaded_item_csv_file - 只需保存文件并返回文件名
def handle_uploaded_item_csv_file(f):
    now = datetime.now()
    # YY_mm_dd_HH_MM
    dt_string = now.strftime("%Y_%m_%d_%H_%M")
    file_name = os.path.join(settings.MEDIA_ROOT, f"tmp_csv/item_csv_{dt_string}.csv")
    with open(file_name, 'wb+') as destination:
        for chunk in f.chunks():
            destination.write(chunk)

    return f"tmp_csv/item_csv_{dt_string}.csv" …
Run Code Online (Sandbox Code Playgroud)

python django bulk django-views

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

标签 统计

django ×3

avatar ×1

bulk ×1

django-users ×1

django-views ×1

file-upload ×1

python ×1