我切换到django 2,因为它支持使用inspectdb检测json字段,但是当我运行inspectdb时,它会生成django.contrib.postgresql.fields.JSONField,我不知道从哪里导入它。
正如django文档django_inpectdb_doc
中所述我明白可以通过添加import django.contrib.postgres.fields.JSONField修复它问题是它是自动生成的django.contrib.postgre sql .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中的错误行为?
如果我导入django.contrib,我得到的错误是:
result = django.contrib.postgresql.fields.JSONField(blank=True, null=True)
AttributeError: module 'django.contrib' has no attribute 'postgresql'
答案 0 :(得分:0)
这是Django内省代码中的一个错误。您可以更改模型以使用django.contrib.postgres.fields
,并将import django.contrib.postgres.fields
添加到models.py
。
问题将在Django 2.0.5由Django ticket 29307修复。