【发布时间】:2013-11-20 04:45:56
【问题描述】:
我是 django 新手,尝试制作一个简单的图片上传应用,用户可以在其中上传图片。
以下是部分:
模型.py
class UserPic(models.Model):
user = models.ForeignKey(User)
picfile = models.FileField(upload_to=get_uplaod_file_name)
views.py
@login_required
def list(request):
# Handle file upload
if request.method == 'POST':
picform = PicForm(request.POST, request.FILES, instance=request.user)
if picform.is_valid():
newpic = UserPic(picfile = request.FILES['picfile'])
newpic = picform.save(commit=False)
newpic.user = request.user
newpic.save()
message = "file %s is uploaded" % newpic #**returns name of current user instead of the file's name**
userpics = UserPic.objects.all()
# Redirect to the document list after POST
return render_to_response('userpics/listpics.html',
{'userpics': userpics, 'picform': picform},
context_instance=RequestContext(request)
)
forms.py
class PicForm(forms.ModelForm):
class Meta:
model= UserPic
fields = ( 'picfile',)
listpic.html
<p> Upload pics to your gallery </p>
{% if userpics %}
<ul>
{% for pic in userpics %}
<li><a href="{{ pic.picfile.url }}">{{ pic.picfile.name }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No userpics.</p>
{% endif %}
<!-- Upload form. Note enctype attribute! -->
<form action="/add-pic/" method="post" enctype="multipart/form-data">
{% csrf_token %}
<ul>
{{picform.as_ul}}
</ul>
</p>
<p><input type="submit" value="Upload" /></p>
</form>
Upade:根据建议,我修改了视图,错误消失了,但文件没有保存到数据库中。
基本上我的问题是如何自动将用户分配为外键。 我尝试了几种不同的解决方案。但仍有库存,感谢您为解决此问题提供的帮助。
【问题讨论】:
标签: django image foreign-keys