模型没有迭代 "create by user" django
model no iterable "create by user" django
我有一个问题,当我尝试上传文件时,我正在尝试显示用户上传了文件但无法正常工作。
我的模型是这样的:
class Document(models.Model):
id = models.AutoField(primary_key=True)
programa=models.CharField(max_length = 100)
materia=models.CharField(max_length = 50)
profesor=models.CharField(max_length = 50)
usuario=models.ForeignKey(Usuario)
add=models.DateTimeField ( auto_now = True )
archivo= models.FileField(upload_to="archivos/",storage=OverwriteStorage(),null = False)
def __unicode__(self):
return self.programa
class Meta:
db_table = u'utp_document'
我的看法是:
@login_required(login_url='/')
def upload(request):
if request.method=='POST':
form=DocumentForm(request.POST,request.FILES,)
if form.is_valid():
instances = form.save(commit=False)
for instance in instances:
instance.usuario = request.user
instance.save()
return HttpResponseRedirect('/menu/')
else:
form=DocumentForm()
return render_to_response('formulario_modal.html', {'form': form}, context_instance=RequestContext(request))
我关注了这个postDjango - Auto populate created_by field outside django admin using form。
这是我的 form.py:
class DocumentForm(forms.ModelForm):
class Meta:
model = Document
exclude = ('usuario',)
问题是我尝试新的上传文件得到这个错误:
'Document' object is not iterable
我做错了什么?
form.save()
returns一个单模态实例:
instance = form.save(commit=False)
instance.usuario.user = request.user
instance.save()
仅供参考,在您链接的 post 中使用了 formset,这就是循环的原因。
我有一个问题,当我尝试上传文件时,我正在尝试显示用户上传了文件但无法正常工作。
我的模型是这样的:
class Document(models.Model):
id = models.AutoField(primary_key=True)
programa=models.CharField(max_length = 100)
materia=models.CharField(max_length = 50)
profesor=models.CharField(max_length = 50)
usuario=models.ForeignKey(Usuario)
add=models.DateTimeField ( auto_now = True )
archivo= models.FileField(upload_to="archivos/",storage=OverwriteStorage(),null = False)
def __unicode__(self):
return self.programa
class Meta:
db_table = u'utp_document'
我的看法是:
@login_required(login_url='/')
def upload(request):
if request.method=='POST':
form=DocumentForm(request.POST,request.FILES,)
if form.is_valid():
instances = form.save(commit=False)
for instance in instances:
instance.usuario = request.user
instance.save()
return HttpResponseRedirect('/menu/')
else:
form=DocumentForm()
return render_to_response('formulario_modal.html', {'form': form}, context_instance=RequestContext(request))
我关注了这个postDjango - Auto populate created_by field outside django admin using form。
这是我的 form.py:
class DocumentForm(forms.ModelForm):
class Meta:
model = Document
exclude = ('usuario',)
问题是我尝试新的上传文件得到这个错误:
'Document' object is not iterable
我做错了什么?
form.save()
returns一个单模态实例:
instance = form.save(commit=False)
instance.usuario.user = request.user
instance.save()
仅供参考,在您链接的 post 中使用了 formset,这就是循环的原因。