【django】疑惑集

---------------------问题1--------------------------

django模型创建好以后,执行数据库迁移完成,发现字段写错,如何修改。(no such column: sign_event.start_time)

由于迁移成功后,会生成0001_initial.py文件,如果只是单纯修改models.py文件中的字段/修改admin.py下的字段,均无法真正修改到字段,因为0001_initial.py文件中到字段并未被修改到。

尝试过手动修改0001_initial.py文件中字段,虽然修改成功,但是运行后依旧报错:no such column: sign_event.start_time

 

 

 

----------------------问题2-----------------------

_str_()并未生效,缩进也是正确到,目前没有找到问题所在,只能通过,修改admin.py文件,创建class类通过list_display来做到类似到功能

 

from django.db import models

# Create your models here.

# 发布会表


class Event(models.Model):
    name = models.CharField(max_length=100)  # 发布会标题
    limit = models.IntegerField()            # 参加人数
    status = models.BooleanField()           # 状态
    address = models.CharField(max_length=200)  # 地址
    stat_time = models.DateTimeField('events time')  # 发布会时间
    create_time = models.DateTimeField(auto_now=True)  # 创建时间(自动获取当前时间)

    def _str_(self):
        return self.name


# 嘉宾表
class Guest(models.Model):
    event = models.ForeignKey('Event', 'on_delete=models.CASCADE,')   # 关联发布会id
    realname = models.CharField(max_length=64)  # 姓名
    phone = models.CharField(max_length=16)   # 手机号
    email = models.EmailField()   # 邮箱
    sign = models.BooleanField()    # 签到状态
    create_time = models.DateTimeField(auto_now=True)    # (自动获取当前时间)

    class Meta:
        unique_together = ("event", "phone")

    def _str_(self):
        return self.realname

 

 

 

--------------------------------------问题3---------------------------------------

采用Event.object.filter(name_contains='发布会')发现执行报错,查明原因才知道,name与contains要用双下划线连接才有效。

 

 

------------------------问题4--------------------------------

 

--------------------问题5--------------

执行python3 manage.py migrate(数据库同步命令)

前面一直无法执行,说是mysql版本问题,后来百度了下,发现是语法问题(https://blog.csdn.net/wgp15732622312/article/details/54865323)

再回到guest项目下的settings.py查看,发现是mysql语句的语法问题,如下图,蓝色区域缺少部分符号(此功能作为连接数据库)

 

 

 

 

 

posted on 2018-10-08 15:28  米谷mg  阅读(188)  评论(0)    收藏  举报

导航