0

如果从模型选择中删除一个选项,有什么办法它也应该自动删除数据库中的条目。

喜欢

class Student(models.Model):
    FRESHMAN = 'FR'
    SOPHOMORE = 'SO'
    JUNIOR = 'JR'
    SENIOR = 'SR'
    YEAR_IN_SCHOOL_CHOICES = (
        (FRESHMAN, 'Freshman'),
        (SOPHOMORE, 'Sophomore'),
        (JUNIOR, 'Junior'),
        (SENIOR, 'Senior'),
    )
    year_in_school = models.CharField(max_length=2,
                                      choices=YEAR_IN_SCHOOL_CHOICES,
                                      default=FRESHMAN)

现在我已从列表中删除 (JUNIOR, 'Junior') 选项。在 Student 表中,它应该删除带有 Junior 的记录。

我正在使用 appengine 进行发布。在部署 appengine 应用程序并将更改发送到 db 时是否有机会检查?

任何帮助都非常感谢。

4

2 回答 2

0

所以,我认为这个问题需要澄清。

如果您想要一个具有可变选择集的模型,那就违背了模型的想法。Django 中的模型意味着只能通过在代码上硬编码来更改的东西,而不是由用户或在服务器运行时更​​改。

在这种情况下,您需要一个新模型(例如StudentType)和一个 ForeignKey 在您的Student. 这样,可以通过post_savepost_delete信号应用一致性。

Krzysztof Szularz 的答案是假设您的问题之外的其他事情(这可能是正确的假设),这是 Django 中的正常情况:您已经有一个模型,但是您的代码的新版本改变了选择集。

在这种情况下,正如 Krzysztof 指出的那样,Django 不具备根据模型更改自动更新数据库的功能。在这种情况下,您有两种选择:

  1. 要么您为此使用第三方应用程序(是最受欢迎的应用程序)
  2. 您手动删除条目。

在任何一种情况下,它们都旨在用作代码的更改

于 2013-07-19T10:24:26.430 回答
0

不。进行南数据迁移

于 2013-07-19T09:30:03.270 回答