【问题标题】:Better way of linking multiple models in Django [database] - ManyToManyFields, ForeignKey and CharFields在 Django [数据库] 中链接多个模型的更好方法 - ManyToManyFields、ForeignKey 和 CharFields
【发布时间】:2021-02-12 13:23:55
【问题描述】:

我想将Subject 模型与Class 链接起来,这样Class 模型的每个学生都将在Subject models 中包含用户通过connect_class 链接的相同主题。

school 应用的 models.py 内部。

from django.db import models
from accounts.models import School


class Class(models.Model):
    connect_school = models.ForeignKey(School, on_delete=models.SET_NULL, null=True)
    class_list = models.CharField(max_length=95)
    def __str__(self):
            return self.class_list

class Subject(models.Model):
    connect_class = models.ForeignKey(Class, on_delete=models.SET_NULL, null=True)
    subjects = models.CharField(max_length=95, null=True)
    def __str__(self):
        return self.subjects

student app 的 models.py 内部:

from django.db import models
from django.utils import timezone
import nepali_datetime
from school.models import Class, Subject
from accounts.models import School
connect_school = models.ForeignKey(School, on_delete=models.CASCADE, null=True)
...name,gender, etc. ...
Class = models.ForeignKey(Class, on_delete=models.CASCADE, null=True)
subject = models.ManyToManyField(Subject)

accounts 的 models.py 内部。

from django.db import models
from django.utils import timezone
import nepali_datetime

# from django.contrib.auth.models import User
# Create your models here.

class School(models.Model):
    school_name = models.CharField(max_length=50)
    ...
    username = models.CharField(max_length=100)
    password = models.CharField(max_length=95)
    ...
    principal = models.CharField(max_length=150, default='')
    ....

【问题讨论】:

标签: django django-models django-views


【解决方案1】:

第 1 步:

首先,迁移基本模型,以免它们产生任何冲突。为了您的关心,您需要迁移 School 模型,因为此模型与 Foreign Key 与其他各种模型相关联。

python manage.py migrate school

school 是您的 Djang 应用的 app_name。

第 2 步:

之后,您需要迁移模型的其他分支。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 2013-09-04
    • 1970-01-01
    • 2013-04-25
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多