2015-06-23 5 views
0

Я создал две модели:Загрузка изображений в шаблон

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',) 

Все в порядке, но w При добавлении изображения ничего не происходит - выбирается изображение, но когда я нажимаю кнопку сохранения, новый город добавляется без изображения (в панели администратора он работает). Что я должен добавить в свой код? И как я могу добавить в один город несколько изображений? Когда я добавлю первое изображение, появится кнопка, чтобы добавить вторую и т. Д. Теперь у меня есть место только для одного.

ответ

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

+0

спасибо :) может быть, вы знаете, как я могу добавить несколько изображений в один город? – znawca

+0

Да, но это еще один вопрос: D ... объявить CityImage (models.Model) и добавить к нему два поля: ваше изображение и город = модели. ForeignKey («Город») ... теперь у вас будет отношение - многие изображения города в один город ... в ваших представлениях используются формы (вот как я обычно http://stackoverflow.com/a/26669428/3033586) удачи! знак равно – madzohan

Смежные вопросы