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 中显示表单提交?
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/267949.html