【问题标题】:django model and sqlite db creation bugdjango 模型和 sqlite db 创建错误
【发布时间】:2011-01-09 11:43:35
【问题描述】:

我有以下型号。

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()

我运行“python manage.py validate”给了我 - 发现 0 个错误

然后我运行 'python 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;

但是我没有看到“contractor_since in thecontractor table ... db 字段正在创建???我试了几次,我在 OS X leopard 上使用 django 1.1.1。

我做错了什么?

【问题讨论】:

    标签: django sqlite django-models


    【解决方案1】:

    您正在通过使用相同名称的函数定义来隐藏模型属性。尝试更改函数名称或模型属性 (contractor_since)。

    【讨论】:

    • 对不起,我是 django 的新手。您能否解释一下“隐藏模型属性”是什么意思。谢谢。
    • 知道了。 Google 和 Django doc 做了解释。谢谢。
    猜你喜欢
    • 2015-08-17
    • 1970-01-01
    • 2011-06-09
    • 2021-07-09
    • 2012-09-27
    • 2015-12-13
    • 2021-06-22
    • 2016-10-24
    • 2011-07-03
    相关资源
    最近更新 更多