from django.db import models from django.conf import settings # Create your models here. from dvadmin.utils.models import CoreModel class CrudBookModel(CoreModel): title = models.CharField(max_length=255, verbose_name="书名") sub_title = models.CharField(max_length=255, verbose_name="副标题", null=True, blank=True) series = models.CharField(max_length=255, verbose_name="系列丛书", null=True, blank=True) author = models.CharField(max_length=255, verbose_name="作者") translator = models.CharField(max_length=255, verbose_name="译者", null=True, blank=True) subject = models.CharField(max_length=255, verbose_name="学科") publisher = models.CharField(max_length=255, verbose_name="出版社") abstract = models.CharField(max_length=255, verbose_name="内容摘要", null=True, blank=True) language = models.CharField(max_length=255, verbose_name="语种") edition = models.IntegerField(verbose_name="版次", null=True, blank=True) isbn = models.IntegerField(verbose_name="ISBN", null=True, blank=True) # create_time = models.DateField(verbose_name="创建时间") # create_by = models.IntegerField(verbose_name="创建者编号", default=1) # update_time = models.DateField(verbose_name="更新时间", null=True, blank=True) # update_by = models.IntegerField(verbose_name="更新用户编号", null=True, blank=True) # image = models.ImageField(verbose_name="封面", null=True, blank=True) image = models.CharField(max_length=255,verbose_name="封面", null=True, blank=True) location = models.CharField(max_length=255, verbose_name="存放位置", null=True, blank=True) file = models.FileField(upload_to='books/', verbose_name="电子书文件", null=True, blank=True) file_type = models.CharField(max_length=50, verbose_name="文件类型", null=True, blank=True) class Meta: db_table = "books" verbose_name = '图书表' verbose_name_plural = verbose_name ordering = ('-create_datetime',) class ReadingProgress(CoreModel): """阅读进度模型""" user = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name="用户", related_name='reading_progresses' ) creator = models.ForeignKey( settings.AUTH_USER_MODEL, db_constraint=False, help_text='创建人', null=True, on_delete=models.deletion.SET_NULL, related_name='created_reading_progresses', related_query_name='creator_query', verbose_name='创建人' ) book = models.ForeignKey( CrudBookModel, on_delete=models.CASCADE, verbose_name="图书" ) location = models.TextField(verbose_name="阅读位置(CFI)", null=True, blank=True) progress = models.FloatField(verbose_name="阅读进度(%)", default=0) class Meta: db_table = "reading_progress" verbose_name = '阅读进度' verbose_name_plural = verbose_name unique_together = ('user', 'book') ordering = ('-update_datetime',)