【发布时间】:2020-05-04 09:02:18
【问题描述】:
models.py
from django.db import models
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
class Book(models.Model):
class TYPE_OF_BOOK(models.TextChoices):
COMPUTER = 'COM', _('Computer')
NATURAL_SCIENCE = 'NAT', _('Natual_Science')
ECONOMY = 'ECO', _('ECONOMY')
HISTORY = 'HIS', _('History')
type_of_book = models.CharField(
max_length=10,
choices=TYPE_OF_BOOK.choices,
default=True,
)
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
published_date = models.DateField(blank=True)
def __str__(self):
return self.title
class Review(models.Model):
book = models.ForeignKey(Book, on_delete=models.CASCADE, related_name='reviews')
author = models.CharField(max_length=50)
text = models.TextField()
grade = models.IntegerField(default=5)
created_date = models.DateTimeField(default = timezone.now)
def __str__(self):
return self.text
此时,每本书都可以有评论。
如何根据书评的平均成绩来处理书。
--补充说明--
我尝试了一对多,并且可以访问 book.reviews。但是我不能按年级来接近书本
我尝试了多对多但无法访问 book.reviews
【问题讨论】:
标签: django inheritance model