#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)