我构建了一个应用程序,人们可以在其中发布待售广告,例如汽车,公寓,小工具等。我有一些模型,每个模型都有自己的特殊字段,例如: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”的模型。
您有任何想法如何利用这种关系建立数据库。请任何帮助。预先谢谢你。
答案 0 :(得分:0)
相关名称用于向后查询。relented名称是可选字段,相关字段必须唯一。您的模型非常简单,不需要任何相关名称。`定义没有相关名称的模型。