今天的Django教训汇总-20210322

今天Django的教训汇总:
1.未在项目中添加应用,就去admin查看模型。
2.修改模型应一个个来,而不是三个模型一起修改。
3.修改模型后,跑错了路径。居然去到别的项目路径。
4.修改模型,只跑了python manage.py makemigrations,居然忘记python manage.py migrate

正确顺序是:
1.在workspace新增项目django-admin.py startproject training_system

CMD

C:\Users\Season\workspace2>django-admin.py startproject training_system

2.在项目路径django-admin.py startproject app

CMD

C:\Users\Season\workspace2\training_system>django-admin.py startproject app

3.在项目setting.py中注册app

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myclass',
]

4.定义models。注意定义id时,null=True或有默认值default=0。以下为多对多模型的范例。

from django.db import models

class Employee(models.Model):
    eid = models.CharField(max_length=200,null=True)
    name = models.CharField(max_length=200)
    gender = models.CharField(max_length=200)
    on_board_date = models.DateTimeField('date on board')

    def __str__(self):
        return self.name



class Teacher(models.Model):
    tid = models.CharField(max_length=200,null=True)
    name = models.CharField(max_length=200,null=True)
    on_board = models.BooleanField(null=True)
    gender = models.CharField(max_length=200,null=True)
    teacher_grade = models.IntegerField(default=0)

    def __str__(self):
        return self.name



class Subject(models.Model):
    Subject_id = models.CharField(max_length=200,null=True)
    subject_name = models.CharField(max_length=200)
    teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE,null=True)
    employee = models.ManyToManyField(Employee, through='Employee_Subject')

    def __str__(self):
        return self.subject_name


class Employee_Subject(models.Model):
    employee = models.ForeignKey(Employee,on_delete=models.CASCADE)
    subject = models.ForeignKey(Subject,on_delete=models.CASCADE)

5.python manage.py makemigrations 和 python manage.py migrate依次进行,不可遗漏。

C:\Users\Season\workspace2\training_system>python manage.py makemigrations

6.请先在admin登记模型。再进入admin后台管理界面去查看模型。

from django.contrib import admin
from myclass.models import Employee, Subject, Teacher, Employee_Subject
# Register your models here.

class EmployeeAdmin(admin.ModelAdmin):
    list_display = ('eid', 'name')

admin.site.register(Employee)
admin.site.register(Subject)
admin.site.register(Teacher)
admin.site.register(Employee_Subject)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_46629123/article/details/115094430