【发布时间】:2018-04-09 15:36:42
【问题描述】:
我切换到 django 2 因为它支持使用 inspectdb 检测 json 字段,但是当我运行 inspectdb 时它会生成 django.contrib.postgresql.fields.JSONField 我不知道从哪里导入它。
这里的 django 文档中指定 django_inpectdb_doc
我知道可以通过添加 import django.contrib.postgres.fields.JSONField 来修复它,但问题是它是自动生成的 django.contrib.postgresql.fields.JSONField(注意粗体字)。
class AsyncResultsStore(models.Model):
task_id = models.CharField(max_length=255)
created = models.DateTimeField(blank=True, null=True)
status = models.CharField(max_length=255)
result = django.contrib.postgresql.fields.JSONField(blank=True, null=True)
info = models.CharField(max_length=255)
arguments = django.contrib.postgresql.fields.JSONField(blank=True, null=True)
chip_meas_result = models.ForeignKey(Chipmeasurementresult, models.DO_NOTHING, blank=True, null=True)
class Meta:
managed = False
db_table = 'async_results_store'
我想做:
import django.contrib.postgres.fields
但这是不可能的,因为生成的行是:
django.contrib.postgresql.fields
postgressql 代替 postgres
在上面的文档链接中指定我应该放入 settings.py 安装的应用程序:'django.contrib.postgres'
我做到了。
我应该从其他地方导入还是这是 django2 中的错误行为?
如果我确实 import django.contrib 我得到的错误是:
result = django.contrib.postgresql.fields.JSONField(blank=True, null=True)
AttributeError: module 'django.contrib' has no attribute 'postgresql'
【问题讨论】:
-
我已经为此创建了一张 Django 票证。如果您让我知道您的 GitHub 用户名,我可以在提交消息中注明您,或者如果您愿意,我可以直接说“Erindy on Stack Overflow”。
-
@alasdair 这是我的 github github.com/erindy 我花了很长时间认为这是由于 django 2 升级不当造成的。
-
好消息是,由于您的问题,它将在下一个 Django 版本 2.0.5 中修复。
-
@alasdair 感谢并乐于贡献,如果您觉得这个问题有用,请考虑投票。
标签: python json django django-2.0 inspectdb