了解django

时间:2014-12-30 12:47:58

标签: python django

这是新的,并试图学习python和django。我会切入正确的追逐。我正在阅读主站点上的django教程,我发现你可以在django中设置一个数据库,其中包含类似这里给出的类变量

from django.db import models

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

在本教程的后面,使用

创建一个Poll对象
p = Poll(question="What's new?", pub_date=timezone.now())

我的问题是:看起来字符串是使用命名参数传递的,但在类中,这些似乎是使用models构造的对象。那么django如何转换字符串,"什么是新的?",成为一个问题对象?

3 个答案:

答案 0 :(得分:5)

定义模型类时,您只需为Django定义模型模式。 Django使用此信息创建一个表并保存您的对象。所以,当你说:

question = models.CharField(max_length=200)

在数据库中创建一个文本字段,Poll对象将有一个包含字符串的问题字段。

答案 1 :(得分:5)

诀窍是questionpub_date不是典型的对象属性:它们是类属性。 Django使用它们来理解你希望模型看起来像什么。

稍后,当您创建扩展Poll的{​​{1}}类时,Django会查看models.Modelquestion类属性,并创建一个将它们存储为<的对象strong>对象属性。

例如,让我们尝试创建自己的ORM:

pub_date

Django是如何做到的。

答案 2 :(得分:2)

它不会将其转换为任何内容,因为从提供的Poll类中,question被定义为CharField(文本)而不是对象。 Django不会做任何魔术!