【发布时间】:2020-01-30 22:20:30
【问题描述】:
对象模型:
class Object(models.Model):
author = models.ForeignKey(ProfileUser, on_delete=models.CASCADE)
title = models.CharField(max_length=300)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
address = models.CharField(max_length=300)
content = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
approved_object = models.BooleanField(default=False)
admin_seen = models.BooleanField(default=False)
def __str__(self):
return f"{self.title}"
类别型号:
class Category(models.Model):
title = models.CharField(max_length=50)
def __str__(self):
return f"{self.title}"
例如,我有一些类别,如酒店、餐馆等。所以我希望每个类别都有不同的功能(添加新的单选按钮),但我不确定如何正确处理它。酒店必须有房间,游泳池等。餐馆必须有乡村厨房,座位等。将来我会有其他类别。
问题是:这是最好的方法(实践)。
我的解决方案:创建第三个表,其中包含特征和每个类别以具有列 features 并用逗号分隔存储特征,但基于 DB normalization 并不是很好的解决方案。
【问题讨论】:
-
我建议阅读这篇文章!它可能会给您的用例带来很好的启发!
https://realpython.com/modeling-polymorphism-django-python/
标签: python mysql django normalization