下面是我項目中django代碼的簡化版本;它允許用戶上傳文件並給它一個標題。此功能完美工作。但是,當用戶稍後重新編輯表單時,將重新顯示文件和標題,但是當用戶去提交文件填充空容器時。重新打開進行編輯形式的文件域看起來是這樣的:用文件區編輯Django模型而不重新上傳文件
目前: media_location/uploadedfile.mp3
變化:文件選擇沒有所選文件
而且我提交後,它是:
- 提起這需要
[選擇文件]中選擇
我如何得到它使用戶不必重新上傳文件沒有文件?提交完成後字段是否爲只讀,或者是否可編輯,對我而言無關緊要。已完成的項目不適合客戶,只能由一小部分值得信賴的用戶使用,但如果可能的話,我仍然希望遵循最佳做法。謝謝你的幫助。
的Django代碼:
models.py
class Recording(models.Model):
rec_title=models.CharField(max_length=200,blank=True)
rec_file = models.FileField(upload_to='recordings')
forms.py
from django import forms
from songstorage.models import Recording
class RecordingForm(forms.ModelForm):
rec_file=forms.FileField(label='Upload File')
rec_title=forms.CharField(label='Recording Title',required=False)
class Meta:
model=Recording
views.py
def addrecordings(request,recordingfile):
#if there is a recordingfile in the url, the user is editing...
if recordingfile:
recording=Recording.objects.get(rec_title=recordingfile)
recording_form = RecordingForm(instance=recording)
#...Otherwise a new form is createing a new one
else:
recording_form = RecordingForm(request.POST, request.FILES)
#When the form is submitted, do the following:
if request.method == 'POST':
#check if its valid
if recording_form.is_valid():
recording_form.save()
#if sucessfully submitted, redirect
return redirect('/recordings/')
return render_to_response('addrecordings.html',{'recording_form':recording_form},context_instance=RequestContext(request))
有類似的問題,只是好奇,如果你已經完成了嗎? –
我認爲Django應該添加一項功能來解決這個問題。 –