2010-01-26 22 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