V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
kangsgo
V2EX  ›  Python

Django 如何上传图片?

  •  
  •   kangsgo · 2016-11-19 20:58:49 +08:00 · 2039 次点击
    这是一个创建于 2928 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    表单层:

    #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"),
    
    5 条回复    2016-11-19 22:39:46 +08:00
    est
        1
    est  
       2016-11-19 21:10:08 +08:00   ❤️ 2
    from V2EX import answers

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

    用户头像上传
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1100 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:51 · PVG 06:51 · LAX 14:51 · JFK 17:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.