Как отделить модель изображения от других моделей и создать связь между ней и другими моделями, а также создать более одного изображения для объекта

Я хочу сделать модель изображений и некоторые другие модели, которые могут иметь несколько фотографий для каждого объекта. Как я могу реализовать это в Django и Rest Framework?

Я приведу вам пример, остальное понять довольно легко. Пожалуйста, не просите нас писать ваш код.

class Image(models.Model):
    image = models.ImageField(...)
    mymodel = models.ForeignKey('myapp.MyModel',related_name="images",...)

class MyModel(models.Model):
    fields....

Для получения всех изображений вы можете сделать:

mymodel = MyModel.objects.get(pk=my_pk)
images = mymodel.images.all()

Для сериализации:

class ImageSerializer(serializers.ModelSerializer):
     class Meta:
        model = Images
        fields = '__all__'

class MyModelSerializer(serializers.ModelSerializer):
    image_list = ImageSerializer(Many=True)
    class Meta:
        model = MyModel
        fields = ['image_list', ...]

Посмотрите, пожалуйста: https://docs.djangoproject.com/en/4.1/ref/models/fields/#django.db.models.ForeignKey

Если вы хотите интегрировать это в Django Admin: https://docs.djangoproject.com/en/4.1/ref/contrib/admin/#django.contrib.admin.TabularInline

Документы для django-rest-framework и связанных с ним сериализаторов: https://www.django-rest-framework.org/api-guide/relations/#nested-relationships

Вернуться на верх