首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django models.Model类。models.CharField

Django models.Model类。models.CharField
EN

Stack Overflow用户
提问于 2021-01-02 16:07:01
回答 2查看 94关注 0票数 0

这个问题以前可能有人问过,但很抱歉我找不到,所以我才问这个问题

我想了解一下models.CharField()这个标题

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

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

为什么是模型?在我看来,它像一个模块,而CharField看起来像一个类

在我看来,我们访问的是models模块中的一个类。

示例

代码语言:javascript
复制
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)

感谢您抽出时间来

EN

回答 2

Stack Overflow用户

发布于 2021-01-02 17:44:17

Model继承自models类,在django ORM中,它更像是在数据库中创建一个表,对于数据库中的每一列(这里是字段),我们使用models.corresponding_fields()

如果您检查db.models:

代码语言:javascript
复制
    (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 docs - Model

票数 0
EN

Stack Overflow用户

发布于 2021-01-08 14:17:19

对于任何其他担心这件事的人...

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

单击here

备注

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65537121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档