Django 如何上传图片?

2016-11-19 20:58:49 +08:00
 kangsgo

我今天问的有点多,搞了一晚上一直没有搞懂,所以抱歉还在这里问一下

我想请问一下我要创建上传图片的表单,我要如何获取?

每位回复的朋友都会感谢,直到货币倾家荡产为止

表单层:

#forms.py

class Edit(forms.ModelForm):
    class Meta:
        '''关联类'''
        model=Article
        exclude = ()

模型层:

#models.py
class Article(models.Model):
    title = models.CharField(max_length = 100, verbose_name='博客标题')  #博客题目
    date_time = models.DateTimeField(auto_now_add = True, verbose_name='日期') #文章日期
    categeory = models.ForeignKey(Category,blank=True,null=True, verbose_name='分类') #博客分类
    image_url_i = models.ImageField(upload_to='article/%Y',blank=True,null=True,verbose_name='图片') #博客预览图
    content = models.TextField(blank = True, null = True, verbose_name='内容') #博客内容
    reference = models.ForeignKey('ReferenceLink',blank=True,null=True,verbose_name='参考链接') #博客参考链接

    class Meta:
        verbose_name = '博客'
        verbose_name_plural=verbose_name
        ordering = ['-date_time']

    def __str__(self):
        return self.title

视图层:

#views.py
#add 博客页面
def edit(request):
    if request.method=='POST':
        form=Edit(request.POST,request.File)
        if form.is_valid():
            form.save()
            return HttpResponse("成功")
    else:
        form=Edit()
        return render(request,"edit.html",{'form':form})
#urls.py
url(r'^blog/edit/$','gromacs.views.edit',name="blog_edit"),
1958 次点击
所在节点    Python
5 条回复
est
2016-11-19 21:10:08 +08:00
from V2EX import answers

answers.copy().paste()
upczww
2016-11-19 21:16:07 +08:00
kangsgo
2016-11-19 21:22:16 +08:00
@upczww 开始我试了不行,后来又可以了~打错了好像,谢谢你~
chevalier
2016-11-19 22:19:38 +08:00
页面中的 forms 表单切记添加 enctype="multipart/form-data" 属性
另外开发环境记得设置 static 和 media 的路径和 urlparttens
lostab
2016-11-19 22:39:46 +08:00
练手写的一个简单的社区应用,可以参考下: https://github.com/lostab/hulu/tree/master/user

用户头像上传

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/321751

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX