2010-01-26 76 views
1

我有以下模型。django模型和sqlite数据库创建bug

from django.db import models 

class Client(models.Model): 
    postcode = models.CharField(max_length=10) 
    first_name = models.CharField(max_length=100) 
    last_name = models.CharField(max_length=100) 
    address = models.TextField(blank=True) 
    phone = models.IntegerField(blank=True) 
    email = models.EmailField(blank=True) 
    url = models.URLField(blank=True) 
    client_since = models.DateTimeField('Client Since') 

    def __unicode__(self): 
     return self.first_name 

def client_since(self): 
    return self.client_since.date() == datetime.date.today() 

class Contractor(models.Model): 
    postcode = models.CharField(max_length=10) 
    first_name = models.CharField(max_length=100) 
    last_name = models.CharField(max_length=100) 
    address = models.TextField(blank=True) 
    phone = models.IntegerField(blank=True) 
    email = models.EmailField(blank=True) 
    contractor_since = models.DateTimeField('Contractor Since') 

    def __unicode__(self): 
     return self.first_name 

    def contractor_since(self): 
     return self.contractor_since.date() == datetime.date.today() 

我运行 '蟒蛇manage.py验证' 给了我 - 0发现错误

然后我运行“蟒蛇manage.py的SQL “APPNAME”,我能看到我的表...

BEGIN; 
CREATE TABLE "schedule_client" (
    "id" integer NOT NULL PRIMARY KEY, 
    "postcode" varchar(10) NOT NULL, 
    "first_name" varchar(100) NOT NULL, 
    "last_name" varchar(100) NOT NULL, 
    "address" text NOT NULL, 
    "phone" integer NOT NULL, 
    "email" varchar(75) NOT NULL, 
    "url" varchar(200) NOT NULL, 
    "client_since" datetime NOT NULL 
) 
; 
CREATE TABLE "schedule_contractor" (
    "id" integer NOT NULL PRIMARY KEY, 
    "postcode" varchar(10) NOT NULL, 
    "first_name" varchar(100) NOT NULL, 
    "last_name" varchar(100) NOT NULL, 
    "address" text NOT NULL, 
    "phone" integer NOT NULL, 
    "email" varchar(75) NOT NULL 
) 
; 
COMMIT; 

但我没有看到“contracor_since在承包表...创建数据库字段???我试了好几次,我使用Django 1.1.1 OS X Leopard的。

我我做错了吗?

回答

4

您正在通过使用相同名称的函数定义对模型属性进行遮蔽。尝试更改函数名称或模型属性(contractor_since)。

+0

对不起,我是django新手。你能否通过“模型属性”来解释你的意思。谢谢。 – wailer 2010-01-26 11:37:48

+0

明白了。 Google和Django doc做了解释。谢谢。 – wailer 2010-01-26 11:46:04