lib.itmens/catalog/game/models.py

85 lines
2.2 KiB
Python
Raw Normal View History

from catalog.common import *
2022-12-16 01:08:10 -05:00
from django.utils.translation import gettext_lazy as _
from django.db import models
class Game(Item):
2022-12-11 23:20:28 +00:00
category = ItemCategory.Game
2022-12-29 23:57:02 -05:00
url_path = "game"
demonstrative = _("这个游戏")
2022-12-08 23:58:44 +00:00
igdb = PrimaryLookupIdDescriptor(IdType.IGDB)
steam = PrimaryLookupIdDescriptor(IdType.Steam)
douban_game = PrimaryLookupIdDescriptor(IdType.DoubanGame)
2022-12-16 01:08:10 -05:00
METADATA_COPY_LIST = [
2022-12-29 23:57:02 -05:00
"title",
"brief",
"other_title",
"developer",
"publisher",
"release_date",
"genre",
"platform",
"official_site",
2022-12-16 01:08:10 -05:00
]
other_title = jsondata.ArrayField(
2023-01-05 03:06:13 -05:00
base_field=models.CharField(blank=True, default="", max_length=500),
verbose_name=_("其他标题"),
2022-12-16 01:08:10 -05:00
null=True,
blank=True,
default=list,
)
developer = jsondata.ArrayField(
2023-01-05 03:06:13 -05:00
base_field=models.CharField(blank=True, default="", max_length=500),
verbose_name=_("开发商"),
2022-12-16 01:08:10 -05:00
null=True,
blank=True,
default=list,
)
publisher = jsondata.ArrayField(
2023-01-05 03:06:13 -05:00
base_field=models.CharField(blank=True, default="", max_length=500),
verbose_name=_("发行商"),
2022-12-16 01:08:10 -05:00
null=True,
blank=True,
default=list,
)
release_date = jsondata.DateField(
2023-01-05 03:06:13 -05:00
verbose_name=_("发布日期"),
auto_now=False,
auto_now_add=False,
null=True,
blank=True,
2022-12-16 01:08:10 -05:00
)
genre = jsondata.ArrayField(
2023-01-05 03:06:13 -05:00
verbose_name=_("类型"),
base_field=models.CharField(blank=True, default="", max_length=200),
2022-12-16 01:08:10 -05:00
null=True,
blank=True,
default=list,
)
platform = jsondata.ArrayField(
2023-01-05 03:06:13 -05:00
verbose_name=_("平台"),
base_field=models.CharField(blank=True, default="", max_length=200),
2022-12-16 01:08:10 -05:00
default=list,
)
official_site = jsondata.CharField(
2023-01-13 22:40:07 +00:00
verbose_name=_("官方网站"), max_length=1000, null=True, blank=True
)
2023-01-05 03:06:13 -05:00
@classmethod
def lookup_id_type_choices(cls):
id_types = [
IdType.IGDB,
IdType.Steam,
IdType.DoubanGame,
IdType.Bangumi,
]
return [(i.value, i.label) for i in id_types]