123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 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') # 确保用户不会重复添加同一景点
|