Django模型与计算列

时间:2013-06-26 05:13:25

标签: python django postgresql-9.1

如何在django模型中表示具有默认值(在SQL中指定)的列?

表:

CREATE TABLE myTable
(
    id SERIAL,
    myGuid VARCHAR DEFAULT uuid_generate_v4(),
    anotherColumn VARCHAR
)

型号:

class myTable(models.Model):
    id = models.AutoField(primary_key=True)
    #How to represent myGuid column
    anotherColumn = models.CharField(max_length=40)

    class Meta:
        db_table = "myTable"

我正在使用Python 2.7.3和Django 1.4.2

1 个答案:

答案 0 :(得分:1)

您可以使用python中的uuid作为uuid字段的默认值,而不是在DB级别定义它。

import uuid
def get_uuid():
    return str(uuid.uuid4())

class myTable(models.Model):
    id = models.AutoField(primary_key=True)
    myuuid = models.CharField(max_length=40, unique=True, default=get_uuid)
    anotherColumn = models.CharField(max_length=40)

    class Meta:
        db_table = "myTable"