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

时间:2019-04-01 22:03:20

标签: django html5 python-3.5

我正在尝试创建一个输入表单字段,该字段可以接受我们在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做到这一点吗?

3 个答案:

答案 0 :(得分:4)

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)

答案 1 :(得分:0)

您是否尝试过使用WYSIWYG插件? Django summernote可能有效 https://github.com/summernote/django-summernote

然后您可以将窗体的小部件设置为SummernoteWidget

答案 2 :(得分:0)

要以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)

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