创建具有多种输入类型的表单

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建具有多种输入类型的表单相关的知识,希望对你有一定的参考价值。

我正在尝试创建一个输入表单字段,可以在Twitter中看到文本,图像或视频。

我正在尝试以下方法:

from django import forms
from .models import Tweet

class TweetModelForm(forms.ModelForm):
    content = forms.CharField(label='',
                widget=forms.Textarea(
                        attrs='placeholder': "Your message",
                            "class": "form-control"
                    ))

哪个产生enter image description here

但是,我正在尝试使用相同的输入框,以便用户可以上传图像,视频,GIF或只在框中键入文本。我不知道如何修改上面的表单字段。

编辑:如果使用Django无法实现,可以使用html5完成吗?

答案

enter image description here

您应该像Froala Editor一样使用WYSIWYG编辑器

用法

from django import forms
from froala_editor.widgets import FroalaEditor

 class PageForm(forms.ModelForm):
     content = forms.CharField(widget=FroalaEditor)
另一答案

你尝试过使用WYSIWYG插件吗? Django summernote可能会工作https://github.com/summernote/django-summernote

然后,您可以在窗体中将窗口小部件设置为SummernoteWidget

另一答案

要在Django表单中添加文件上载,您需要将FileField添加到表单类中。

更新您的forms.py,如下所示。

from django import forms
from .models import Tweet

class TweetModelForm(forms.ModelForm):
    content = forms.CharField(label='',
                widget=forms.Textarea(
                        attrs='placeholder': "Your message",
                            "class": "form-control"
                    ))
    file = forms.FileField(label="Upload file", blank=True)

这将呈现用户可以上传图像和其他文件的单独文件字段。

以上是关于创建具有多种输入类型的表单的主要内容,如果未能解决你的问题,请参考以下文章

HTML 输入元素可以有多种类型吗?

具有动态返回类型的表单输入

如何使用 Javascript DOM 从具有多个表单的页面获取具有输入类型密码的表单?

当多个输入具有相同名称时,根据输入类型设置 jquery 表单验证

如何使用 keyup 功能进行多种形式的输入

如何将不同类型的表单输入附加到 formData()?