Django 模型选择

标签 django django-south

几个小时以来,我一直被如何在我的模型中做出选择所困扰。

到目前为止,我在模型中的批准字段遇到了问题。我希望被批准成为 3 个选择中的一个,但我似乎得到的是所有三个选择的元组。在“./manage.py shell”中,我得到

>>> listing.objects.all()[0].approved
((u'1', u'Awaiting'), (u'2', u'No'), (u'3', u'Yes'))

我的型号:
from django.db import models

# Create your models here.
class directory(models.Model):
    name = models.CharField(max_length="50")

class listing(models.Model):
    name = models.CharField(max_length="50")
    directory = models.ForeignKey(directory)
    birthday = models.DateField()
    state = models.CharField(max_length="2") 
    owner = models.CharField(max_length="50")
    approved = (
        (u'1', u'Awaiting'),
        (u'2', u'No'),
        (u'3', u'Yes'),
    )

还有一个问题:但是每当我进行模型更改并尝试使用 South 迁移模式时,我的命令行都会卡住并且永远不会完成迁移模式。关于它为什么卡住的任何可能的建议?它可以检测更改,但永远不会完成它们的实现。因为它永远不会完成,所以当我点击模型进行更改时,我无法再通过管理面板访问我的模型,我永远无法加载页面。
The order in which I run the commands are
    ./manage.py convert_to_south myapp
    ./manage.py schemamigration southtut --auto
    ./manage.py migrate southtut ( never progresses on this command after the first few lines appear)

最佳答案

approved正如您所拥有的,它不是一个字段,它只是一个包含三个选项的类属性。选项必须是实际字段的属性:

APPROVAL_CHOICES = (
    (u'1', u'Awaiting'),
    (u'2', u'No'),
    (u'3', u'Yes'),
)
approved = models.CharField(max_length=1, choices=APPROVAL_CHOICES)

关于Django 模型选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14025733/

相关文章:

python - Django:通过通用关系过滤 order_by

python - 无法删除 Django 中的 User 对象

python - 在后台运行南迁移

django - 使用南的模式迁移/重构模型

django - 我应该如何为使用 South 的 Django 应用程序设置 SOUTH_DATABASE_ADAPTERS?

python - 过滤 django 中的组合日期和时间

python - 选择相关 - 从外键中选择一个对象

django - 独立 Django 应用程序中的迁移

django - 在 EC2 上以几乎零停机时间部署(单节点)Django Web 应用程序

python - django-mptt 树重建错误