Ошибка атрибута: модуль ‘django.db.models’ не имеет атрибута ‘Models’

#python #django

#python #django

Вопрос:

Когда я пытаюсь перенести новое приложение на сервер, я получаю эту ошибку

Ошибка атрибута: модуль ‘django.db.models’ не имеет атрибута ‘Models’ — в терминале

Я использую PyCharm. Я очень новичок в Django и веб-разработке, поэтому любые советы помогут. Спасибо!

 from django.db import models

# Create your models here.
class product(models.Model):
    item = models.Textfiels()
    description = models.Textfields()
    price = models.Textfields()
 

Комментарии:

1. вы случайно не писали models.Models (с символом s в конце) вместо models.Model here?

2. класс product (модели. Модель): элемент = модели. Textfiels() описание = модели. Textfields() цена = модели. Текстовые поля ()

3. у вас орфографическая ошибка: models.Textfiels но вам может потребоваться предоставить дополнительную информацию о вашей настройке, чтобы мы могли помочь диагностировать проблему. Какую версию django вы используете? Используете ли вы virtualenv? на что похож ваш макет проекта?

4. django 2.0.7 и vitrualenv. Я буквально просто пытаюсь создать свое первое приложение. Я использовал sublime text, но предпочел pycharm, и вдруг он не работает. django.db неразрешен, я думаю, это может быть проблемой

5. Быстрый способ тестирования — активировать ваш virtualenv и попробовать оператор import в интерпретаторе python в вашем терминале: 1) source / path/ to/ your/ virtualenv / bin / activate и 2) запустить python в вашем терминале и попробовать 3) from django.db.models import Model .

Ответ №1:

Такого класса нет django.db.models.TextFields , но это работает для меня в любой последней версии :

 from django.db import models
class product(models.Model):
    item = models.TextFiel()
    description = models.TextField()
    price = models.TextField()
 

Вы допустили 2 опечатки: правильное имя TextField и вы ввели Textfields (Python чувствителен к регистру)

Я подозреваю, что вы неправильно настроили свой проект в PyCharm. При правильной настройке он показывает предупреждения о неправильно написанных именах (имена подчеркнуты красными точками с настройкой по умолчанию).

Комментарии:

1. Даже когда я исправляю написание или опечатки, у него та же проблема :/

2. Если вы ввели именно то, что в моем ответе, вы в правильном направлении. Но нам нужно больше контекста, чтобы дать реальный ответ на вашу проблему. т.Е. Вы создали virtualenv с совместимой версией Python? Вы пытались создать product модель в консоли django? Какова точная трассировка ? …

Ответ №2:

Есть еще один вариант этого вопроса, и он имеет вид:

 AttributeError: module 'django.contrib.auth' has no attribute 'models'
 

Насколько я могу судить, это обычно вызвано конфликтующим импортом или неправильно импортированными файлами. Другой причиной могут быть изменения в обновлениях Django, но я не уверен в этом, поскольку я не нашел никакой документации, которая изменила бы этот аспект библиотеки Django.

Краткосрочное решение этой проблемы заключается в следующем:

 from django.contrib.auth import models

class MyClass(models.User): """ """
 

Это позволит вам, по крайней мере, протестировать вашу команду runserver и веб-сайт в браузере по вашему выбору.

Я все еще пытаюсь найти какие-либо другие решения этой проблемы, которые могут быть исправлены для индивидуального импорта самого модуля ‘auth’.

На момент написания этой статьи я использую Django 2.2.6, тогда как Django 2.2.7 отсутствует, а 2.2.8 готовится к выпуску.

Ответ №3:

Я не уверен, что это решение, но когда у меня возникла эта проблема, это было потому, что в моем admin.py файл, который у меня был

 from django.contrib import admin

from meetings.models import Meeting, Room

admin.site.register(Meeting, Room)
 

Но изменение его на решение проблемы

 from django.contrib import admin

# Register your models here.
from meetings.models import Meeting, Room

admin.site.register(Meeting)
admin.site.register(Room)