There's no clear answer on your question. It highly depends on what you want to achieve.
With making a separate app, that only knows about images, you will have the following problems:
- You want different
upload_to
for your cars
and houses
. You will need to set it dynamically. Example.
- Your image model (the one with
ImageField
) will know about both cars
and houses
, via related_name
property. I don't find it to be any good. To get rid of the backreferences, you can specify ManyToMany(..., related_name="+")
. Note: "+"
means no related name given and it shouldn't be auto-generated. But the reasonability of removing it is also questionable.
- One more app, that does... well, nothing. One more dependency for each of your apps.
On your place I would just leave both model images, one in cars
, another in houses
. That's considering the amount of boilerplate code you will have to write and amount of problems you would create for yourself out of nowhere.