我正在构建一个网站,用户可以在其中输入文本并提交文本,以便可以将其保存并作为服务器上的文件进行访问。不幸的是,我不太确定如何将输入的文本保存为文件。
有人能指出我正确的方向,我将如何做或详细说明我将采取的步骤?如果我错过了明显的谷歌搜索结果,那就先发制人道歉。对Django来说有点新,我可能无意中掩盖了有用的资源。
以下是相关的HTML,主要是从文件上传表单复制的表单:
<form name="myWebForm" id="submissionCode_codeEditor" action="uploadFile/" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="500" />
<input type="text" name="title" placeholder="File Name"/>
<input type="hidden" name="taskID" value={{ taskID }} />
<input type="submit" value="Submit This Code" />
</form>
以下是相关的Django模型:
class Upload(models.Model):
title = models.CharField(max_length=50)
fileUpload = models.FileField(upload_to='file_uploads')
userID = models.ForeignKey(User)
task = models.ForeignKey(Task)
uploadTime = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.title
答案 0 :(得分:2)
您正在寻找ContentFile
。它是一个Django File
子类,用一串文本而不是文字文件进行实例化。然后,您可以将ContentFile
保存到FileField
。
from django.core.files.base import ContentFile
content = ContentFile(some_text)
upload_instance.fileUpload.save('/path/to/where/file/should/save.txt', content)
upload_instance.save()
答案 1 :(得分:0)
首先使用命令在媒体文件夹中创建一个文件,我假设用户发布了带有名称内容的文本
from app.models import Upload
from django.conf import settings
content = request.GET("content")
file_object = open("%s/%s"%(settings.MEDIA_ROOT, filename),w) #Take file name as hash of content posted and username so that no class
upload = Upload(title=title, fileUpload=filename,user_id=request.user.id)
您的文件已上传,可以使用设置
中的MEDIA_URL进行接收