models.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. from tortoise.models import Model
  2. from tortoise import fields
  3. class Studio(Model):
  4. name = fields.CharField(max_length=32, verbose_name="制片公司名称")
  5. contact_email = fields.CharField(
  6. max_length=32,
  7. source_field="email",
  8. verbose_name="联系邮箱",
  9. )
  10. class Meta:
  11. # 沿用已有数据库表,场景改名不会删除原来的数据。
  12. table = "publish"
  13. class Actor(Model):
  14. name = fields.CharField(max_length=32, verbose_name="演员")
  15. age = fields.IntField(verbose_name="年龄")
  16. class Meta:
  17. table = "author"
  18. class Movie(Model):
  19. name = fields.CharField(
  20. max_length=32,
  21. source_field="title",
  22. verbose_name="电影名称",
  23. )
  24. budget = fields.IntField(source_field="price", verbose_name="制作预算")
  25. poster_url = fields.CharField(
  26. max_length=255,
  27. null=True,
  28. source_field="img_url",
  29. verbose_name="海报地址",
  30. )
  31. views = fields.IntField(source_field="bread", verbose_name="播放量")
  32. comments = fields.IntField(source_field="bcomment", verbose_name="评论量")
  33. studio = fields.ForeignKeyField(
  34. "models.Studio",
  35. related_name="movies",
  36. source_field="publishs_id",
  37. )
  38. actors = fields.ManyToManyField(
  39. "models.Actor",
  40. related_name="movies",
  41. through="book_author",
  42. forward_key="author_id",
  43. backward_key="book_id",
  44. description="参演演员",
  45. )
  46. class Meta:
  47. table = "book"