Я создаю приложение, в котором люди размещают объявления о продаже различных вещей, таких как автомобили, квартиры, гаджеты и т. Д. У меня есть модели со своими собственными специальными полями для каждого элемента, например: CarModel, ApartmentModel, SmartphoneModel и т. Д. *
И у меня есть модель Article: и я хочу добавить поле item_of_sale , которое может быть экземпляром различных моделей (например, CarModel или ApartmentModel).
class Article(models.Model):
author =
models.ForeignKey(User,on_delete=models.CASCADE,related_name='articles' )
category = models.ForeignKey(Category,on_delete=models.CASCADE )
title = models.CharField(max_length=120)
text = models.TextField()
item_of_sale = # ??????? models.OneToOneField I suppose
Я пытаюсь что-то вроде этого:
class CarModel(models.Model):
ad = models.OneToOneField(Article, on_delete=models.CASCADE,
related_name='item_of_sale')
marc = models.CharField(max_length=40, choices=MARC_CHOICES)
model = models.CharField(max_length=120, default='')
.....
class ApartmentModel(models.Model):
ad = models.OneToOneField(Article, on_delete=models.CASCADE,
related_name='item_of_sale')
location= models.CharField(max_length=200 )
address= models.CharField(max_length=120)
.....
Но django не позволяет иметь более одной модели с related_name = "item_of_sale".
У вас есть идеи, как я могу создать базу данных с такого рода отношениями. Пожалуйста, помогите. Заранее спасибо.