Django建表
最近在学习Django,遇到了些问题一起来看看吧。
1.自定义表名
Django 建表默认会以 app_name + Class_name
解决方法
#coding:utf8 from django.db import models from datetime import datetime # Create your models here. class Datasets(models.Model): app_id = models.ForeignKey(App) app_name = models.CharField(verbose_name='应用名', max_length=32, db_column='app_name2') id = models.AutoField(auto_created=True, primary_key=True, default=1) user_name = models.CharField(max_length=128) begin_date = models.DateTimeField() time = models.CharField(max_length=32) interface = models.CharField(max_length=128) datasets = models.CharField(max_length=128) class Meta: """ 其中db_column指定了对应的字段名,db_table指定了对应的表明; 如果不这样指定,字段名默认为app_name, 而表明默认为app名 +类名: [app_name]_info. verbose_name指定在admin管理界面中显示中文; verbose_name表示单数形式的显示,verbose_name_plural表示复数形 式的显示;中文的单数和复数一般不作区别。 """ db_table = 'datasets' verbose_name = '数据集' verbose_name_plural = '数据集'
2.修改表结构
有时修改了models.py在
执行 python manage.py makemigrations appname 会提示
Operations to perform:
Apply all migrations: monitor
Running migrations:
No migrations to apply.
解决方法
1.select * from django_migrations ;
删除 该models所属的应用记录
2.删除建表记录
3.python manage.py makemigrations appname
python manage.py migrate appname