Skip to main content
 首页 » 编程设计

python之从 Google App Engine 模型迁移到纯 Django 系统

2025年05月04日22落叶无声

我如何为纯 Django 模型系统重写此 AppEngine 特定代码 (没有谷歌 API)

class A(db.Model): 
    name = db.StringProperty(multiline=True) 
    description = db.TextProperty() 
    isAdvanced = db.BooleanProperty() 
    foos = db.ListProperty(db.Key)     
    bar = db.IntegerProperty() 
 
    def get_foos(self): 
        return db.get(self.foos) 

请您参考如下方法:

据我所知,您必须手动完成。不过值得庆幸的是,Django 可以为您完成大部分工作。

首先,确保您在 settings.py 中有适当的数据库设置。您可以找到数据库配置的详细演练 here .

完成后,运行 python manage.py inspectdb > models.py。它将构造模型的 python 代码的 manage.py 输出转储到 models.py 中,然后您可以将其添加到相关的 Django 应用程序中。你必须仔细检查它,但它应该花费更少的精力。

此外,根据个人经验,如果遇到任何问题,它会通知您。例如,PostgreSQL 的 money 和 MySQL 的 currency 字段都无法被 Django 的模型识别,因此它会发出 models.TextField(),然后是# 这是一个猜测。。

编辑: 刚刚在谷歌搜索时发现了这篇文章: Migrating from Google App Engine to Django

编辑 2: 我刚刚意识到我可能没有回答您的问题。这是(大致)它的样子,但我仍然建议您运行 python manage.py inspectdb > models.py。

from django.db import models 
 
class A(models.Model): 
    name = models.TextField() 
    description = models.TextField() 
    isAdvanced = models.BooleanField() 
    foos = # Dunno, a quick Google search doesn't turn up the equivalent 
    bar = models.IntegerField() 

要获取 name 的 multiline 属性,您可能需要查看 this question来自 Google 群组或您自己 Google。