您好我正在开发一个用于学习Django的评论网站。
每篇评论都有一个评分属性列表,如:
我坚持写评论/评级模型。我怎样才能用MVC模式描述这个?评级属性列表可以不同。
目前我有这段代码:
class Place(models.Model):
name = models.CharField(max_length=512)
address = models.CharField(max_length=512)
author = models.ForeignKey(UserProfile)
class Review(models.Model):
????
class Review(models.Model):
name = models.CharField(max_length=1024)
text = models.TextField()
author = models.ForeignKey(UserProfile)
place = models.ForeignKey(place)
ratings = models.ForeignKey(Rating)
任何提示?
答案 0 :(得分:1)
如果事先可以获得(潜在)属性列表,您可以为每个属性引入一个数据库字段,并将未设置属性存储为None
:
class Review(models.Model):
name = models.CharField(max_length=1024)
text = models.TextField()
author = models.ForeignKey(UserProfile)
place = models.ForeignKey(place)
price_rating = models.IntegerField(null=True)
location_rating = models.IntegerField(null=True)
# ...
否则(如果属性/评级完全可变),您必须创建另一个模型来存储您的属性(删除上面的_rating
字段):
class ReviewAttribute(models.Model):
review = models.ForeignKey(Review, related_name='attributes')
name = models.CharField(max_length=100)
value = models.IntegerField()