Связь одной модели с несколькими по fk Django

У меня есть несколько моделей

class Car(models.Model):

class Nootebook(models.Model):

class Food(models.Model):

и к каждой из этих моделей я хочу добавлять несколько картинок. Модель для картинок у всех одинаковая.

class Image(models.Model):
     image = models.ImageField('Изображение', upload_to=get_image_path)
     desc = models.TextField('описание альбома')

Знаю что можно написать 3 таких модели с изображениями и к каждой связь по FK. Но тогда будет повторятся код одинаковый. Как быть в таком случае? Добавит еще одну промежуточную модель к которой Car, Nootebook, Food будут ссылаться через FK. Т.е

class General_model(model.Models):

class Image(models.Model):
    g_m = models.ForeignKey(General_model,on_delete=models.CASCADE)

class Car(models.Model):
     g_m = models.ForeignKey(General_model,on_delete=models.CASCADE)

или можно поступить как-нибудь по-другому


Ответы (1 шт):

Автор решения: Za Ars

В чем проблемы в классе с изображениями указать

class Image(...):
   image = models.ImageField(...)

   product = models.ForeignKey(to=Product, null=True, blank=True, ...)
   category = models.ForeignKey(to=Category, null=True, blank=True, ...)

И при перед сохранением проверять, что точно 1 значения из FK не None ?

Можете еще написать свой @register и метод, который генерирует этот класс со связями, на основе базового абстрактного класса

→ Ссылка