from django.conf import settings from django.db import models class TranslateUsage(models.Model): TRANSLATE_TYPE_CHOICES = [ ('text', '文本翻译'), ('detect', '语种识别'), ('image', '图片翻译'), ('audio', '语音翻译'), ] user = models.ForeignKey( settings.AUTH_USER_MODEL, null=True, blank=True, on_delete=models.SET_NULL, related_name='translate_usages', verbose_name='用户' ) translate_type = models.CharField( max_length=10, choices=TRANSLATE_TYPE_CHOICES, verbose_name='翻译类型' ) from_lang = models.CharField(max_length=20, blank=True, default='', verbose_name='源语言') to_lang = models.CharField(max_length=20, blank=True, default='', verbose_name='目标语言') text_length = models.IntegerField(default=0, verbose_name='文本长度') created_at = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') ip_address = models.GenericIPAddressField(null=True, blank=True, verbose_name='IP地址') class Meta: verbose_name = '翻译使用记录' verbose_name_plural = '翻译使用记录' ordering = ['-created_at'] indexes = [ models.Index(fields=['translate_type'], name='idx_translate_type'), models.Index(fields=['created_at'], name='idx_created_at'), ] def __str__(self): return f"{self.get_translate_type_display()} - {self.created_at}"