【发布时间】:2015-05-20 07:25:17
【问题描述】:
我正在尝试保存模型的实例但无济于事。
下面是我的模型;
class AudioFile(models.Model):
name = models.CharField(max_length=100,default='')
audio_file = models.FileField()
uploader = models.ForeignKey(User,default='')
def __unicode__(self):
return self.name
我有以下表格;
class AudioFileForm(forms.ModelForm):
class Meta:
model = AudioFile
fields = ['name', 'audio_file']
def clean_audio_file(self):
audio = self.cleaned_data['audio_file']
if audio:
if audio._size > 5*1024*1024:
raise ValidationError("File too large ( > 5mb )")
if os.path.splitext(audio.name)[1] != ".mp3":
raise ValidationError("We only support mp3!")
return audio
else:
raise validationError("Couldn't read uploaded file")
我有以下视图来处理提交的表单;
form = AudioFileForm(request.POST, request.FILES)
if form.is_valid():
form.cleaned_data['uploader'] = request.user //view requires login
form.save()
return HttpResponseRedirect(
reverse('home_audio',kwargs={'pk':audio_file.pk})
)
else:
return HttpResponse(form.errors)
但是在提交时我得到了错误; IntegrityError at /uploadaudio
NOT NULL constraint failed: stationrunner_audiofile.uploader_id /uploadaudio 是与视图对应的 URL,stationrunner 是我的应用名称。
请有人帮忙。
【问题讨论】:
标签: django