我如何为纯 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。
