关于 python:Wagtail: 将 Django 表单传递给 WagtailAdmin (Sidebar: Forms) | 珊瑚贝

Wagtail: Passing Django form to WagtailAdmin (Sidebar: Forms)


我有一个非常有趣的任务。

  • 带有 FileField 的 Wagtail 表单 – 用于图像上传(我想这还不可能)

鉴于这在 Wagtail 中还不可能,我尝试了另一件事。

  • 一个实际上有一个 FileField 的 Django 表单(来自 wagtail 中的这个示例 django 表单)。
  • 生成上传图片的链接(比如说\\’/media/pics/image_example.jpg\\’)
  • 不知何故将此链接(文本字段)传递给 Wagtail Form 并自动提交。
  • 所以最后,我们在 WagtailAdmin 中有一个表单提交,其中有一个包含上传图片的直接 url 的字段。

    但是.. 我真的不明白这必须如何工作。有任何想法吗?也许我的问题有更好的解决方案。


    有下面提到的方法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    def content_file_name(instance, filename):

        import random
        import string

        # random_str length will be 16 which will be combination of (4 digits + 4 characters + 4 digits + 4 characters)
        random_str = “”.join([random.choice(string.uppercase) for i in range(0,4)]) +“”.join([random.choice(string.digits) for i in range(0,4)]) + \\
                       “”.join([random.choice(string.lowercase) for i in range(0,4)]) +“”.join([random.choice(string.digits) for i in range(0,4)])

        # return string seperated by hyphen eg:
        random_str =  random_str[:4] +“-“ + random_str[4:8] +“-“ + random_str[8:12] +“-“ + random_str[12:]
        filetype = filename.split(“.”)[1].lower()
        filename = random_str +“.” +  filetype
        path =“yourapp/uploads/” + str(datetime.datetime.now().year) +“/” + str(datetime.datetime.now().month) +“/” + str(datetime.datetime.now().day) +“/”
        os_path = os.path.join(path, filename)
    return os_path

    现在将上述方法添加到带有附件的模型字段中
    例如:-

    1
    atachement = models.FileField(upload_to=content_file_name, blank=True, null=True, verbose_name=‘Attachment’)

    WagtailForm.save()
    将保存您的数据。

    • 哦!这太棒了!但最后一个问题。如何将此字段实现到模板表单中?
    • 你不需要做任何形式的事情
    • 但是如何在 WagtailAdmin 中显示表单提交?


    来源:https://www.codenong.com/43159794/

    微信公众号
    手机浏览(小程序)

    Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

    Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

    Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9363.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
    0
    分享到:
    没有账号? 忘记密码?