3

テキスト(.txt)ファイルの内容を表示しtextarea、編集されている場合は保存しようとしています。

編集したファイルを正しく保存するには?

モデル:

class FileDb(models.Model):
    source = models.FileField(upload_to="source")

ビュー:

def single_file(request,id):
    file = FileDb.objects.get(id=id)
    filename = file.source.read()
    #save edited file:
    if request.method == "POST":
        content = request.POST['content']
        file.source = content
        file.save()


    return render_to_response('single_file.html',{'file':file,'filename':filename},context_instance=RequestContext(request))

テンプレート:

<form method="POST">{% csrf_token %}
    <textarea name="content">{{filename}}</textarea>
    <input type="submit" value="Save changes">
</form>
4

1 に答える 1

3

あなたは単にastringをaに割り当てていませんFileField

file.source = content

次のようにコンテンツをファイルに書き込む必要があります。

if request.method == "POST":
        from django.core.files import File
        f = open(file.source.path, 'w')
        content = request.POST['content']
        f.write(content)
        f = File(f)
        file.source = f
        file.save()

お役に立てれば!

于 2013-05-24T13:43:30.587 に答える