Я использую community pycharm, а версия python - 3.6.1, django - 1.11.1. Это предупреждение не влияет на работу, но я не могу использовать автоматическое завершение IDE.
Неразрешенный атрибут reference 'objects' для класса '' в PyCharm
Ответ 1
Вам необходимо включить поддержку Django. Идти к
PyCharm → Настройки → Языки и рамки → Django
и затем установите Enable Django Support
Ответ 2
Вы также можете явно показать диспетчер модели по умолчанию:
from django.models import models
class Foo(models.Model):
name = models.CharField(max_length=50, primary_key=True)
objects = models.Manager()
Ответ 3
Платформы Python (Django, Flask и т.д.) Поддерживаются только в Professional Edition. Проверьте ссылку ниже для более подробной информации.
Ответ 4
Используйте базовую модель для всех ваших моделей, которые предоставляют объекты:
class BaseModel(models.Model):
objects = models.Manager()
class Meta:
abstract = True
class Model1(BaseModel):
id = models.AutoField(primary_key=True)
class Model2(BaseModel):
id = models.AutoField(primary_key=True)
Ответ 5
Другое решение, которое я нашел, это положить @python_2_unicode_compatible decorator на любую модель. Это также требует, чтобы у вас была str реализация вашей функции
Например:
# models.py
from django.utils.encoding import python_2_unicode_compatible
@python_2_unicode_compatible
class SomeModel(models.Model):
name = Models.CharField(max_length=255)
def __str__(self):
return self.name
Ответ 6
Я нашел этот хакерский обходной путь, используя заглушки:
models.py
from django.db import models
class Model(models.Model):
class Meta:
abstract = True
class SomeModel(Model):
pass
models.pyi
from django.db import models
class Model:
objects: models.Manager()
Это должно включить завершение кода PyCharm:
Это похоже на решение Campi, но избавляет от необходимости переопределять значение по умолчанию
Ответ 7
из selenium импорт вебдрайвер из webdriver_manager.chrome импортировать ChromeDriverManager импортировать юнит-тест
класс GoogleSearch (unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver.implicitly_wait(5)
cls.driver.maximize_window()
@classmethod
def setUpClass(self):
self.driver = webdriver.Chrome(ChromeDriverManager().install())
self.driver.get("https://google.com")
self.driver.find_element_by_name("q").send_keys("BT Plc")
self.driver.find_element_by_name("btnK").click()
def setUpClass(self):
self.driver.get("https://google.com")
self.driver.find_element_by_name("q").send_keys("Nasir")
self.driver.find_element_by_name("btnK").click()
@classmethod
def setUpClass(cls):
cls.driver.close()
cls.driver.quit()
print ("Тест завершен")
Выше кода выполняется только последняя строка "print (" Тест завершен ")" Может ли кто-нибудь помочь мне понять, почему часть класса не выполняется