интегрировать несколько загрузок фотографий в мои сообщения - Django - PullRequest
0 голосов
/ 08 апреля 2019

Мне нужно загрузить неопределенное количество изображений в мои сообщения, в настоящее время я могу загрузить только одну фотографию для сообщения Как я могу загрузить несколько изображений в одном сообщении?Я прилагаю код моего приложения.

models.py

class Casa(models.Model):

    nome_casa = models.CharField(max_length=80)
    descrizione = models.TextField()
    logo_casa = models.ImageField(blank=True, null=True)

    def __str__(self):
        return self.nome_casa

    def get_absolute_url(self):
        return reverse("visualizza_casa", kwargs={"pk" : self.pk})

    class Meta:
        verbose_name = "Casa"
        verbose_name_plural = "Case"

views.py

from django.shortcuts import render, get_object_or_404
from django.views.generic.edit import CreateView
from .models import Casa
from .mixins import StaffMixin



class CreaCasa(StaffMixin, CreateView):
    model = Casa
    fields = '__all__'
    template_name = "inserzioni/crea_casa.html"
    success_url = "/"



def visualizzaCasa(request, pk):
    casa = get_object_or_404(Casa, pk=pk)
    context = {"casa" : casa}
    return render(request, "inserzioni/visualizza_casa.html", context)

1 Ответ

0 голосов
/ 08 апреля 2019

Как я вижу, у вас есть модель Casa, и на данный момент у нее есть только одна ImageField (logo_casa), но вы хотите добавить к ней другие изображения.Самый простой способ сделать это - создать другую модель (например, CasaImage) и добавить к ней ImageField.Пример:

# models.py
class Casa(models.Model):
    nome_casa = models.CharField(max_length=80)
    descrizione = models.TextField()
    logo_casa = models.ImageField(blank=True, null=True)

    def __str__(self):
        return self.nome_casa

    def get_absolute_url(self):
        return reverse("visualizza_casa", kwargs={"pk" : self.pk})

    class Meta:
        verbose_name = "Casa"
        verbose_name_plural = "Case"


class CasaImage(models.Model):
    casa = models.ForeignKey(Casa, on_delete=models.CASCADE)
    image = models.ImageField()

Обратите внимание, что я оставил поле logo_casa, чтобы отличить логотип от других Casa изображений.CasaImage имеет поле ForeignKey, которое представляет отношение многие к одной базе данных (вы можете прочитать больше здесь https://docs.djangoproject.com/en/2.2/topics/db/examples/many_to_one/). Параметр on_delete=models.CASCADE означает, что когда мы удалим Casa экземпляр, все связанные CasaImages будутудаляется автоматически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...