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

 

posted @ 2017-04-18 17:02  不太灵光的程序员  阅读(1022)  评论(0编辑  收藏  举报