@dragonesis

Как добавить несколько изображений в django?

Привет.
Вновь сел за джанго, делаю небольшой, собственный проект.
Возникла проблема с добавлением нескольких изображений к посту. Когда пытаюсь произвести миграцию, добавлял к модели кусок PostsImages уже после основной, то вываливается ошибка
django.core.exceptions.FieldError: Unknown field(s) (images) specified for Posts

Модель
from django.db import models
from datetime import datetime
from django.contrib.auth.models import User
# Create your models here.


def upload_path_autor(instance, filename):
    return 'posts_images/{0}/{1}'.format(instance.author, filename)
# def upload_path(instance, filename):
#     return str(upload_path_autor)+'{0}/{1}'.format(instance.id, filename)
# return str(instance.get_upload_path.format(instance.id,filename)

class Posts(models.Model):
    author = models.ForeignKey(User)
    title = models.CharField(max_length=150)
    description = models.TextField()
    image = models.ImageField(upload_to=upload_path_autor, blank=True)
    date = models.DateField(default=datetime.now)
    # author = models.OneToOneField(User, on_delete=models.CASCADE)
    class Meta:
        verbose_name = 'Пост'
        verbose_name_plural = 'Пост'

    def __str__(self):
        return self.title

class PostsImages(models.Model):
    images = models.ImageField(upload_to=upload_path_autor, blank=True)
    post = models.ForeignKey(Posts, related_name='PostsImages')


Форма
from django import forms
from .models import Posts
from .models import PostsImages

class PostForm(forms.ModelForm):
    class Meta:
        model = Posts
        fields = [
            'title',
            'image',
            'description',
            'images',
        ]
        widgets = {
        	'title': forms.TextInput(attrs={'placeholder':'Заголовок','class':'form-control'}),
            'image': forms.FileInput(attrs={'class':'form-control'}),
        	'description': forms.Textarea(attrs={'placeholder':'Сообщение','class':'form-control'}),
            'images': forms.FileInput(attrs={'class':'form-control','multiple': 'multiple'}),
        }
        labels = {
        	'title': 'Заголовок',
            'image': 'Основное изображение',
        	'description': 'Сообщение',
        	'images': 'Фотографии',
        }
  • Вопрос задан
  • 2444 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Сначала делаете миграцию с новым полем, а потом добавляете его в форму.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы