12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- from django.db import models
- # Create your models here.
- class UserInfo(models.Model):
- phone = models.CharField(max_length=11, unique=True,verbose_name='手机号')
- token=models.CharField(verbose_name='用户TOKEN',max_length=64,null=True,blank=True)
- class Meta:
- verbose_name = '用户信息'
- verbose_name_plural = verbose_name
- 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') # 确保用户不会重复添加同一景点
- class UserBehavior(models.Model):
- user_info = models.ForeignKey(UserInfo, on_delete=models.CASCADE, related_name='behaviors')
- feature_name = models.CharField(max_length=50) # 功能模块名称
- usage_count = models.IntegerField(default=0) # 使用次数
- last_used = models.DateTimeField(auto_now=True) # 最后使用时间
- class Meta:
- unique_together = ('user_info', 'feature_name')
- verbose_name = '用户行为记录'
- verbose_name_plural = verbose_name
- class FeatureMapping(models.Model):
- """功能到小程序页面的映射"""
- user_info = models.ForeignKey(UserInfo, on_delete=models.CASCADE, related_name='Mappings',default=1)
- feature_name = models.CharField(max_length=50)
- page_path = models.CharField(max_length=100) # 小程序页面路径
- priority = models.FloatField(default=1.0) # 业务优先级
- class Meta:
- verbose_name = '功能页面映射'
- verbose_name_plural = verbose_name
- def __str__(self):
- return f"{self.feature_name} → {self.page_path}"
|