Как отделить модель изображения от других моделей и создать связь между ней и другими моделями, а также создать более одного изображения для объекта
Я хочу сделать модель изображений и некоторые другие модели, которые могут иметь несколько фотографий для каждого объекта. Как я могу реализовать это в 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