Django模型.模型类.模型.CharField



这个问题以前可能被问过,但很抱歉我找不到,所以这就是我问的原因

我想了解标题models.CharField()

我知道我们从模块调用模型继承了Model类。

但是为什么Model.charfield()类不能作为模型的方法或函数

为什么是模特?在我看来,它像一个模块,而CharField似乎像一个类

在我看来,我们正在从models模块访问一个类。

示例

from django.db import models
class Page(models.Model):
title = models.CharField(max_length=60)
permalink = models.CharField(max_length=12, unique=True)
update_date = models.DateTimeField('Last Updates')
bodytext = models.TextField('Page Content', blank=True)

我感谢你花时间

Model继承自models类,在django ORM中,更像模型是在数据库中创建一个表,对于数据库中的每一列(此处为字段(,我们都使用模型。corresponding_fields((

如果检查db.models:

(Many imports and )
from django.db.models.query_utils import FilteredRelation
# Imports that would create circular imports if sorted
from django.db.models.base import DEFERRED, Model  # isort:skip
from django.db.models.fields.related import (  # isort:skip
ForeignKey, ForeignObject, OneToOneField, ManyToManyField,
ManyToOneRel, ManyToManyRel, OneToOneRel,
)

__all__ = aggregates_all + constraints_all + enums_all + fields_all + indexes_all
__all__ += [
'ObjectDoesNotExist', 'signals',
'CASCADE', 'DO_NOTHING', 'PROTECT', 'SET', 'SET_DEFAULT', 'SET_NULL',
'ProtectedError',
'Case', 'Exists', 'Expression', 'ExpressionList', 'ExpressionWrapper', 'F',
'Func', 'OuterRef', 'RowRange', 'Subquery', 'Value', 'ValueRange', 'When',
'Window', 'WindowFrame',
'FileField', 'ImageField', 'OrderWrt', 'Lookup', 'Transform', 'Manager',
'Prefetch', 'Q', 'QuerySet', 'prefetch_related_objects', 'DEFERRED', 'Model',
'FilteredRelation',
'ForeignKey', 'ForeignObject', 'OneToOneField', 'ManyToManyField',
'ManyToOneRel', 'ManyToManyRel', 'OneToOneRel',
]

简而言之,仅__init__.py文件中的模型包含作为集合的所有导入

有关详细信息,您可以阅读django文档-型号

对于任何其他担心这一点的人。。。

我问这个没有错。。。在这里,我从django文档页面得到了答案

单击[此处](https://docs.djangoproject.com/en/3.1/ref/models/fields/)

票据

从技术上讲,这些模型是在django.db.models.fields中定义的,但为了方便起见,它们被导入到django.db模型中;标准约定是使用from django.db导入模型,并将字段称为模型。领域

答案是:从技术上讲,这些模型是在django.db.models.fields中定义的,但为了方便起见,它们被导入到django.db模型中

最新更新