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