django2 中 json 的 inspectdb 命令生成 django.contrib.postgresql.fields.JSONField 而不是 django.contrib.postgres.fields.JSONField?
inspectdb command for json in django2 generates django.contrib.postgresql.fields.JSONField instead of django.contrib.postgres.fields.JSONField?
我切换到 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
在上面文档的 link 中指定我应该放入 settings.py 已安装的应用程序:'django.contrib.postgres'
我做到了。
我应该从其他地方导入还是这是 django2 中的错误行为?
如果我导入 django.contrib,我得到的错误是:
result = django.contrib.postgresql.fields.JSONField(blank=True, null=True)
AttributeError: module 'django.contrib' has no attribute 'postgresql'
这是 Django 内省代码中的一个错误。您可以更改模型以使用 django.contrib.postgres.fields
,并将 import django.contrib.postgres.fields
添加到您的 models.py
。
该问题将在 Django 2.0.5 by Django ticket 29307 中得到解决。
我切换到 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
在上面文档的 link 中指定我应该放入 settings.py 已安装的应用程序:'django.contrib.postgres'
我做到了。
我应该从其他地方导入还是这是 django2 中的错误行为?
如果我导入 django.contrib,我得到的错误是:
result = django.contrib.postgresql.fields.JSONField(blank=True, null=True)
AttributeError: module 'django.contrib' has no attribute 'postgresql'
这是 Django 内省代码中的一个错误。您可以更改模型以使用 django.contrib.postgres.fields
,并将 import django.contrib.postgres.fields
添加到您的 models.py
。
该问题将在 Django 2.0.5 by Django ticket 29307 中得到解决。