【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语句的语法问题,如下图,蓝色区域缺少部分符号(此功能作为连接数据库)

浙公网安备 33010602011771号