【问题标题】:Django - Weekly Upload Form LimitDjango - 每周上传表单限制
【发布时间】:2016-11-22 19:14:22
【问题描述】:

我将创建一个表单,注册用户可以在其中上传图像。我可以创建模型、表单、视图。我唯一的问题是我希望用户能够每周上传 2 个文件。如果安装了 2 个文件,我希望表单是被动的。如果你能帮助我如何做限制,我会很高兴。

【问题讨论】:

  • 请展示您到目前为止所做的尝试。关于表单是被动的,你的意思是你希望它被禁用?
  • 是的,我想被禁用。

标签: python django forms


【解决方案1】:

基本上你需要单独的结构来存储这些信息,第一个镜头是:

  1. 使用以下字段创建附加模型:id、user_id、upload_date、file_id
  2. 每次您的用户上传 - 向上述模型/表格添加一行
  3. 在上传之前检查 - 在过去两周内为用户上传了多少文件 - 这是这样的:

    def can_upload(user_id):
        now = now()
        two_weeks_ago = now - timedelta(days=14)
        upload_count = UploadFileLog.objects.filter(
            user_id=user_id,
            upload_date__gte=two_weeks_ago, 
            upload_date__lte=now
        ).count()
        return upload_count < 2  # you can make constant for '2'
    
  4. 您也可以使用上述方法打开/关闭页面上的上传表单 - 将结果传递给模板。

希望这会有所帮助。

【讨论】:

  • 感谢@sebastian-opałczyński 非常感谢您的帮助。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
  • 2022-10-26
  • 2015-03-12
  • 1970-01-01
  • 2011-01-29
  • 2012-04-16
  • 1970-01-01
相关资源
最近更新 更多