AttributeError: модуль 'django.db.models' не имеет атрибута 'MultiPolygonField' - PullRequest
0 голосов
/ 19 февраля 2019

Я сталкиваюсь с проблемой:

AttributeError: module 'django.db.models' has no attribute 'MultiPolygonField'. 

Он был брошен django, когда я пытался makemigrations.Старый файл миграций (был сделан только 1 файл makemigrations) был удален.Итак, Django, по какой-то причине, думает, что я импортирую django.db.models вместо django.contrib.gis.db.

. В моем коде models.py есть проблемная часть (отключена причина, разрыв кода в строке поля 'geom')

from django.contrib.gis.db import models
from renter.models import *
from classification_list.models import*

class ForestryKeys(models.Model):

    id = models.IntegerField(primary_key=True)
    df_forestry = models.TextField(blank=True, null=True),
    geom = models.MultiPolygonField(geography=True, null=True, blank=True, verbose_name='gmtry')

    class Meta:
        managed = True
        verbose_name = 'frst'
        verbose_name_plural =  'frtses' 

1 Ответ

0 голосов
/ 19 февраля 2019

Проблема в «звездном импорте».Вы сделали импорт django.contrib.gis.db.models, но затем он был заменен на следующие строки.

from django.contrib.gis.db import models
from renter.models import *  # this could replace models with django.db.models
from classification_list.models import *  # and so could this

Лучшее исправление - явно импортировать нужные модели

from renter.models import MyModel1
from classification_list.models import MyModel2  

или импортировать модуль renter.models

import renter.models as renter_models
import from classification_list.models as classification_models *  
# now use renter_models.MyModel1, classification_models.MyModel2

в качестве хакаВы можете поменять местами порядок моделей, но гораздо лучше использовать один из описанных выше подходов.

from renter.models import *
from classification_list.models import *  
from django.contrib.gis.db import models
...