Django 架模型之models说明和问题集锦

1.怎么确定modal是否成功?
  1. 直接打开数据库,在数据库中查看是否有那你创建的表以及表结构是否一致
  2. 打开usermodal(用户模型)/migrations/目录,查看里面的py文件。0001_initial.py是初次生成的时候产生的py,然后当模型发生改变的时候会生成一个新的py(不是覆盖)。可以查看py里面的结构。
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-05-11 13:36
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='User',
            fields=[
                ('u_name', models.CharField(blank=True, max_length=20)),
                ('u_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
                ('u_psw', models.CharField(max_length=64)),
                ('u_phone', models.CharField(blank=True, max_length=24)),
                ('u_status', models.IntegerField(blank=True)),
            ],
        ),
    ]

2.创建的数据库结构和自定义的模型不一致?
  1. 请检查class 定义每个字段的时候后面是否有‘,’。如果有逗号则该字段会失败
#每个字段之间,没有多余的逗号,否则会失败
class User(models.Model):
    u_name = models.CharField(max_length=20,blank=True)		 	#用户姓名,可以为空
    u_id = models.CharField(max_length=255,primary_key=True) 	#用户id,设置为主键
    u_psw = models.CharField(max_length=64,blank=False) 		#用户密码,不允许为空
    u_phone=models.CharField(max_length=24,blank=True) 			#用户联系方式,可以为空
    u_status=models.IntegerField(blank=True)					#用户状态,可为空
3.手动删除表之后无法自动重建?

参考:https://blog.csdn.net/androidstarjack/article/details/89216892

  1. 这是因为django存在缓存的原因,所以我们需要删除对应的数据库和模型下的缓存。例如我的数据库
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

所以我需要删除项目目录下的db.sqlite3数据库文件,以及模型下的这些文件
在这里插入图片描述
在这里插入图片描述
此时在重新执行命令即可。

4.modal 操作手册

参考:https://blog.csdn.net/weixin_37773766/article/details/80330221

猜你喜欢

转载自blog.csdn.net/CAir2/article/details/90115785