Django загрузка нескольких изображений с помощью формы
Я создаю доску объявлений. Я хочу разместить несколько изображений в одном сообщении. Однако, как бы я не старался найти способ создать несколько с помощью формы.Я хочу загрузить несколько файлов одновременно. Я создал функцию загрузки изображений, но она не отображается на сайте. Я не знаю, где это пошло не так
models.py
class Writing(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
subject = models.CharField(max_length=200)
content = models.TextField()
create_date = models.DateTimeField()
modify_date = models.DateTimeField(null=True, blank=True)
view_count = models.IntegerField(default=0)
def __str__(self):
return self.subject
class WritingImage(models.Model):
writing = models.ForeignKey(Writing, on_delete=models.CASCADE)
image = models.ImageField(upload_to='images/%Y/%m', blank=True, null=True)
forms.py
class WritingForm(forms.ModelForm):
captcha = ReCaptchaField(label=('로봇확인'))
class Meta:
model = Writing
fields = ['subject', 'content']
labels = {
'subject': '제목',
'content': '내용',
}
class WritingFullForm(WritingForm):
images = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple': True}))
class Meta(WritingForm.Meta):
fields = WritingForm.Meta.fields + ['images', ]
views.py
@login_required(login_url='account_login')
def writing_create(request):
"""
글작성
"""
if request.method == 'POST':
form = WritingFullForm(request.POST, request.FILES)
files = request.FILES.getlist('images')
if form.is_valid():
writing = form.save(commit=False)
writing.author = request.user
writing.create_date = timezone.now()
writing.save()
if files:
for f in files:
WritingImage.objects.create(writing=writing, image=f)
return redirect('ourtube:index')
else:
form = WritingFullForm()
context = {'form': form}
return render(request, 'ourtube/writing_form.html', context)
form.html
<div class="form-group">
<label for="note-image">Images</label>
<input type="file" name="images" class="form-control-file" id="note-image" multiple>
</div>
detail.html
<h1>{{ writing.view_count }} 회</h1>
<h1>{{ writing.id }}</h1>
<h1>{{ writing.subject }}</h1>
<div>
{{ writing.content }}
</div>
{% for photo in writing.image_set.all %}
<li>
{{ photo.image }}
</li>
{% endfor%}
<div>
{% for photo in writing.photo_set.all %}
{{ photo.image.url }}
<img src="{{ photo.image.url }}" style="width: 100%; float: left; margin-right: 10px;" />
{% endfor %}
</div>
{% for photo in writing.image_set.all %} << Изображение не сохраняется в письме?
помогите мне
Если вы используете save(commit = False)
, вы должны вызвать save_m2m()
. Ссылка на документацию.