from django.db import models from django.contrib.auth.models import AbstractUser # Create your models here. class UserInfo(AbstractUser): phone = models.CharField(max_length=11, unique=True) # 使用手机号作为用户名字段 USERNAME_FIELD = 'phone' REQUIRED_FIELDS = [] # 移除了默认的username要求 class Meta: verbose_name = '用户信息' verbose_name_plural = verbose_name db_table = 'auth_user' # 关键!使用与Django默认相同的表名 def __str__(self): return self.phone class UserPlan(models.Model): user = models.ForeignKey( UserInfo, on_delete=models.CASCADE, related_name='plans', verbose_name='关联用户' ) spot_img = models.URLField( verbose_name='景点图片', max_length=500, blank=True, null=True, default='' # 设置默认值为空字符串 ) spot_id = models.IntegerField(verbose_name='景点ID') spot_name = models.CharField(max_length=100, verbose_name='景点名称') created_at = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') class Meta: verbose_name = '用户行程' verbose_name_plural = verbose_name unique_together = ('user', 'spot_id') # 确保用户不会重复添加同一景点