【问题标题】:Django: can't add image from site, but it works from Django Administration pageDjango:无法从站点添加图像,但它可以从 Django 管理页面工作
【发布时间】:2015-07-23 11:15:25
【问题描述】:

我尝试在现场从表单中添加图像。我的表格完美地工作在 django 管理网站上。但是在现场,当我按下提交按钮时,页面重新加载,我得到了我需要再次添加图像的信息。所有信息,在我重新加载页面后,保持原样,但添加的图像消失了。

models.py

class UrlUpload(models.Model):
    """docstring for """
    title = models.CharField(max_length=255)
    photo = models.ImageField(upload_to='/home/mariusz/web/moje/moje/static/covers/')
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
    description = models.TextField()
    category = models.CharField(max_length=100)

    def __unicode__(self):
        return self.title

forms.py

from django import forms

from .models import UrlUpload
class UrlUploadForm(forms.ModelForm):
    class Meta:
        model = UrlUpload
        fields = ['title', 'description', 'category','photo']

views.py

@login_required
def profile(request):
    if request.method == 'POST':
        form = UrlUploadForm(request.POST, request.FILES)
        if form.is_valid():
            handle_uploaded_files(request.FILES['/covers/'])
            return HttpResponseRedirect('profile.html') #dodac potem strone potwierdzjaca wyslanie
    else:
        form = UrlUploadForm()
    return render_to_response('profile.html', {'form': form}, RequestContext(request))

profile.html

                    <div class="col-md-6">
                      <div class="panel panel-default">
                        <div class="panel-heading">
                            <div class="panel-title">
                            <i class="glyphicon glyphicon-film"></i>
                            <h4>Dodaj Informacje</h4>
                            <form  method="POST" action="">{% csrf_token %}
                            {{ form|crispy}}
                            <input class="btn btn-success" type='submit' value="Dodaj" />
                            </form>
                          </div>
                        </div>
                      </div>
                    </div>

【问题讨论】:

  • 尝试将enctype="multipart/form-data" 添加到您的&lt;form&gt;
  • 我只是再补充一下。但还是不行。
  • 您是否从服务器收到任何类型的响应?我想知道这是否与文件夹权限问题有关。

标签: python html django


【解决方案1】:

我将 views.py 更改为

    @login_required
def profile(request):
    form = UrlUploadForm(request.POST, request.FILES)
    queryset = UrlUpload.objects.all()
    if form.is_valid():
        instance = form.save(commit=False)
        instance.save()
        print instance
    context = {
        "form" : form,
        "queryset": queryset

    }
    return render(request, "profile.html", context)

它现在可以工作了。

【讨论】:

  • 是创建对象还是更新已设置对象的表单?
猜你喜欢
  • 2011-08-10
  • 2011-04-25
  • 1970-01-01
  • 2021-11-26
  • 2014-08-20
  • 2015-01-22
  • 1970-01-01
  • 2020-09-08
  • 1970-01-01
相关资源
最近更新 更多