我试图创建一个可以上传文件的应用程序,然后对其内容进行一些修改,然后下载它。我遇到的问题是:
型号:
<% for (var i in sqTweetData) { %>
<% if (sqTweetData.hasOwnProperty(i)) { %>
<div class="activeTweet">
<div class="activeTweet__avatar"><img src="<%= sqTweetData.user.profile_image_url %>"></div>
<div class="activeTweet__wrapper">
<div class="activeTweet__name"><%= sqTweetData.user.name %></div>
<div class="activeTweet__message"><%= sqTweetData.text %></div>
</div>
</div>
<% } %>
<% } %>
第一个视图应该通过表单接收上传的文件并用它初始化一个Subtitles对象,然后它应该将这个对象传递给第二个视图,它将获得line_A,line_B,line_C。
我曾尝试使用会话来执行此操作:
class Subtitles(models.Model):
file = models.FileField()
line_A = models.CharField(max_length=255, blank=True)
line_B = models.CharField(max_length=255, blank=True)
line_C = models.CharField(max_length=255, blank=True)
但是当我尝试request.session.get(&#39; new_sub&#39;,None)时,它返回一个错误,指出对象无法序列化
我也考虑在第一个视图中将它保存到数据库中,然后在第二个视图中将其保存回来,但这意味着我必须在创建它时才能获得实例的pk在第二个视图中访问它。我能想到的唯一方法是如何获取保存到db的最后一个文件,这是唯一的方法吗?
由于文件是.txt,我也可以在第一个视图中读取它的内容并将其作为字符串放入reqest.session中,但它似乎不正确
解决这个问题的正确方法是什么?
答案 0 :(得分:1)
您需要结合您的解决方案。在第一个视图中将其保存到数据库,将pk添加到会话,在第二个视图中从会话中获取pk并从数据库加载对象。