【问题标题】:Why Django does not create full table from a model?为什么 Django 不从模型创建完整表?
【发布时间】:2010-02-16 04:19:17
【问题描述】:

我有 2 个模型。我运行 manage.py syncdb 但它只为 2 个模型创建 id 字段。如何让它生成剩余的字段?请多多指教。非常感谢您的帮助!

这是我的models.py:

from django.db import models

GENDER_CHOICES = (
    ('M', 'Male')
    , ('F', 'Female')
)

ACTIVATION_CHOICES = (
    ('Y', 'Activate')
    , ('N', 'Inactive')
)

FULL_PART_CHOICES = (
    ('F', 'Full-time')
    , ('P', 'Part-time')
)

# Create your models here.
class Teachers(models.Model):
    id = models.AutoField(primary_key=True, null=False),
    fname = models.CharField(max_length=15, null=False),
    mname = models.CharField(max_length=15, null=False),
    lname = models.CharField(max_length=15, null=False),
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES, null=False),
    nric = models.CharField(max_length=12, unique=True, null=False),
    email = models.EmailField(max_length=40, unique=True, null=False),
    dob = models.DateField(null=False),
    unit = models.CharField(max_length=50, null=False),
    block = models.CharField(max_length=50, null=False),
    street = models.CharField(max_length=100, null=False),
    postcode = models.CharField(max_length=10, null=False),
    handphone = models.CharField(max_length=16, unique=True, null=False),
    homephone = models.CharField(max_length=16, null=False),
    activated = models.CharField(max_length=1, choices=ACTIVATION_CHOICES, null=False),
    date_ttc = models.DateField(null=False),
    full_part = models.CharField(max_length=1, choices=FULL_PART_CHOICES, null=False),
    nonce = models.CharField(max_length=40, unique=True, null=False),
    passwd = models.CharField(max_length=40, null=False),
    created_at = models.DateTimeField(auto_now_add=True, null=False),
    updated_at = models.DateTimeField(auto_now=True, null=False),

    def __unicode__(self):
        return "Teacher %s %s %s" % (self.fname, self.mname, self.lname)

# Create your models here.
class Admins(models.Model):
    id = models.AutoField(primary_key=True, null=False),
    fname = models.CharField(max_length=15, null=False),
    mname = models.CharField(max_length=15, null=False),
    lname = models.CharField(max_length=15, null=False),
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES, null=False),
    nric = models.CharField(max_length=12, unique=True, null=False),
    email = models.EmailField(max_length=40, unique=True, null=False),
    dob = models.DateField(null=False),
    unit = models.CharField(max_length=50, null=False),
    block = models.CharField(max_length=50, null=False),
    street = models.CharField(max_length=100, null=False),
    postcode = models.CharField(max_length=10, null=False),
    handphone = models.CharField(max_length=16, unique=True, null=False),
    homephone = models.CharField(max_length=16, null=False),
    activated = models.CharField(max_length=1, choices=ACTIVATION_CHOICES, null=False),
    nonce = models.CharField(max_length=40, unique=True, null=False),
    passwd = models.CharField(max_length=40, null=False),
    created_at = models.DateTimeField(auto_now_add=True, null=False),
    updated_at = models.DateTimeField(auto_now=True, null=False),

    def __unicode__(self):
        return "Admin %s %s %s" % (self.fname, self.mname, self.lname)

【问题讨论】:

    标签: database django django-models syncdb manage.py


    【解决方案1】:

    如果您没有任何数据,您可以删除这些表,也可以使用可用于迁移的django-south

    【讨论】:

      【解决方案2】:

      这太容易了。每个字段声明后都有很多多余的逗号。我删除了这些,一切正常。

      感谢您的回复。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-07-18
        • 2018-10-06
        • 2011-04-11
        • 2018-10-31
        • 2023-03-13
        • 2015-02-11
        • 2016-10-25
        相关资源
        最近更新 更多