【发布时间】:2019-01-11 10:27:36
【问题描述】:
我是 Django 新手。我使用 django 表单小部件为网站制作了 textareas。
我想添加一个文件上传,以便能够上传一个将插入文本区域的 .txt 文件。我该怎么办?
我查看了https://docs.djangoproject.com/en/2.1/topics/http/file-uploads/的文档
如何将此代码合并到我已经编写的代码中?
forms.py
class HomeForm(forms.ModelForm):
textInput = forms.CharField(required=True, widget=forms.Textarea(
attrs={
'class': 'form-control',
'placeholder': 'Input text...',
'id': 'input1'
}
))
class Meta:
model = Post #import Post model from home models.py
fields = {'textInput',} #comma required to ensure tuple capability
模型.py
class Post(models.Model):
post = models.CharField(max_length=1000)
user = models.ForeignKey(User, on_delete=models.PROTECT) #default .CASCADE
date = models.DateTimeField(auto_now=True) #data saved into db
views.py
class HomeView(TemplateView):
template_name='home/home.html'
def get(self, request):
form = HomeForm
posts = Post.objects.all()
args = {'form': form, 'posts': posts}
return render(request, self.template_name, args)
def post(self, request):
form = HomeForm(request.POST)
if form.is_valid():
post = form.save(commit=False) #saves data (thanks to the model form)
#comit is false as object still needs to be modified
post.user = request.user
post.save()
text = form.cleaned_data['textInput'] #anticipates SQL injection
#return redirect('home:home')
args = {'form': form, 'text': text}
return render(request, self.template_name, args)
【问题讨论】:
标签: python django python-3.x django-forms django-views