zoukankan      html  css  js  c++  java
  • day74 作业

    from django.db import models
    
    # 汽车表、汽车商家表、赞助商表、赞助商详情表
    class BaseModel(models.Model):
        is_delete = models.BooleanField(default=False)
        createdTime = models.DateTimeField(auto_now_add=True)
        class Meta:
            abstract = True
    
    class Car(BaseModel):
        name = models.CharField(max_length=64)
        price = models.DecimalField(max_digits=10, decimal_places=2)
        brand = models.ForeignKey(to='Brand', db_constraint=False, null=True, on_delete=models.SET_NULL, related_name='cars')
        sponsors = models.ManyToManyField(to='Sponsor', db_constraint=False, related_name='cars')
    
        @property
        def brand_name(self):
            return self.brand.name
    
        @property
        def sponsor_list(self):
            sponsor_list_temp = []
            for sponsor in self.sponsors.all():
                sponsor_dic = {
                    'name': sponsor.name
                }
                try:
                    sponsor_dic['phone'] = sponsor.detail.phone
                except:
                    sponsor_dic['phone'] = '未知'
                sponsor_list_temp.append(sponsor_dic)
            return sponsor_list_temp
    
        class Meta:
            verbose_name_plural = '汽车'
    
        def __str__(self):
            return self.name
    
    class Brand(BaseModel):
        name = models.CharField(max_length=64)
    
        class Meta:
            verbose_name_plural = '品牌'
    
        def __str__(self):
            return self.name
    
    class Sponsor(BaseModel):
        name = models.CharField(max_length=64)
    
        @property
        def phone(self):
            try:
                return self.detail.phone
            except:
                return "无"
    
        class Meta:
            verbose_name_plural = '赞助商'
    
        def __str__(self):
            return self.name
    
    class SponsorDetail(BaseModel):
        phone = models.CharField(max_length=11)
        sponsor = models.OneToOneField(to=Sponsor, db_constraint=False, on_delete=models.CASCADE, related_name='detail')
    
        class Meta:
            verbose_name_plural = '赞助商详情'
    
        def __str__(self):
            try:  # 连表可能会出现问题,所以要异常处理
                return self.sponsor.name + '的详情'
            except:
                return super().__str__()
    
  • 相关阅读:
    子元素过滤器nth-child解释
    jquery属性选择器中|value和^value的区别
    [转]float,double和decimal类型
    postsharp初体验
    [札记]IL经典指令解析之方法调度
    Oracle问题诊断过程常用SQL
    在chrome浏览器中 页面生成二维码
    音视频实例
    html5 新增input类型与属性
    html5 form-Validity验证函数
  • 原文地址:https://www.cnblogs.com/fwzzz/p/12119058.html
Copyright © 2011-2022 走看看