草庐IT

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

codeneng 2023-03-28 原文

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 中显示表单提交?

    有关关于 python:Wagtail: 将 Django 表单传递给 WagtailAdmin (Sidebar: Forms)的更多相关文章

    1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

      关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

    2. ruby-on-rails - Rails 编辑表单不显示嵌套项 - 2

      我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib

    3. ruby - 如何在 Rails 4 中使用表单对象之前的验证回调? - 2

      我有一个服务模型/表及其注册表。在表单中,我几乎拥有服务的所有字段,但我想在验证服务对象之前自动设置其中一些值。示例:--服务Controller#创建Action:defcreate@service=Service.new@service_form=ServiceFormObject.new(@service)@service_form.validate(params[:service_form_object])and@service_form.saverespond_with(@service_form,location:admin_services_path)end在验证@ser

    4. ruby - rails 3 redirect_to 将参数传递给命名路由 - 2

      我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use

    5. ruby-on-rails - 如何生成传递一些自定义参数的 `link_to` URL? - 2

      我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些

    6. Python 相当于 Perl/Ruby ||= - 2

      这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

    7. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

      什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

    8. ruby - 在 Ruby 中按名称传递函数 - 2

      如何在Ruby中按名称传递函数?(我使用Ruby才几个小时,所以我还在想办法。)nums=[1,2,3,4]#Thisworks,butismoreverbosethanI'dlikenums.eachdo|i|putsiend#InJS,Icouldjustdosomethinglike:#nums.forEach(console.log)#InF#,itwouldbesomethinglike:#List.iternums(printf"%A")#InRuby,IwishIcoulddosomethinglike:nums.eachputs在Ruby中能不能做到类似的简洁?我可以只

    9. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

      华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

    10. python - 如何读取 MIDI 文件、更改其乐器并将其写回? - 2

      我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的

    随机推荐