在模板中上传图像

时间:2015-06-23 19:57:02

标签: django

我创建了两个模型:

class Country(models.Model):
    name = models.CharField(max_length=50)

class City(models.Model):
    name = models.CharField(max_length=50)
    country = models.ManyToManyField(Country)
    image = models.ImageField('New photos', upload_to='img/newphotos', blank=True)

我想通过模板添加新城市,所以我创建了:

views.py

def newcity(request):
    if request.method == "POST":
        form = CityForm(request.POST)
        if form.is_valid():
            city = form.save(commit=False)
            city.save()
            form.save_m2m()
            return redirect('city.views.detailcity', pk=city.pk)
    else:
        form = CityForm()
    return render(request, 'city/editcity.html', {'form': form})

forms.py:

class CityForm(forms.ModelForm):

    class Meta:
        model = City
        fields = ('name', 'country', 'image',)

一切都还可以但是当我添加图像时没有任何反应 - 图像被选中但是当我点击保存按钮时,新城市被添加而没有图像(在管理面板中它可以工作)。我必须在代码中添加什么?我怎样才能在一个城市添加少量图像?当我将添加第一张图片时,应该会出现添加第二张图片等按钮。现在我只有一张图片。

1 个答案:

答案 0 :(得分:1)

在您的观看中添加request.FILES

form = CityForm(request.POST, request.FILES)

并确保您的模板中有enctype="multipart/form-data"method="post"

<form method="post" enctype="multipart/form-data">{% csrf_token %}
</form>

https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.FILES