def index(request):
latest_question_list = Question.objects.all().order_by('-pub_date')[:5]
template = loader.get_template('polls/index.html')
context = {'latest_question_list':latest_question_list}
return HttpResponse(template.render(context, request))
Baris pertama dari fungsi itu mendapat kesalahan pada Question.objects.all()
:
E1101: Kelas 'Pertanyaan' tidak memiliki objek 'anggota'
Saya mengikuti tutorial dokumentasi Django dan mereka memiliki kode yang sama dan berjalan.
Saya telah mencoba memanggil sebuah instance.
Question = new Question()
and using MyModel.objects.all()
Juga models.py
kode saya untuk kelas itu adalah ini ...
class Question(models.Model):
question_text = models.CharField(max_length = 200)
pub_date = models.DateTimeField('date published')
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
def __str__(self):
return self.question_text
Tidak berhasil saya masih memiliki kesalahan ini.
Saya telah membaca tentang pylint dan menjalankan ini ...
pylint --load-plugins pylint_django
Yang tidak membantu, bahkan file readme github mengatakan ...
Mencegah peringatan tentang atribut yang dihasilkan Django seperti Model.objects atau Views.request.
Saya menjalankan perintah dalam virtualenv saya, namun tidak ada.
Jadi bantuan apa pun akan bagus.
python
django
django-views
dienkripsi
sumber
sumber
pylint --generated-members=objects
Manager
instance dalammodels.py
file. Lihat dokumentasi Django untuk info lebih lanjut.Jawaban:
Instal
pylint-django
menggunakanpip
sebagai berikutKemudian di Visual Studio Code goto: Pengaturan Pengguna ( Ctrl+ ,atau File> Preferensi> Pengaturan jika tersedia) Masukkan yang berikut ini (harap perhatikan kurung kurawal yang diperlukan untuk pengaturan pengguna kustom dalam VSC):
sumber
.pylintrc
file seperti ini:load-plugins=pylint_django
Dan dengan cara itu akan diambil oleh CLI juga, jadi itu akan bekerja dalam pengaturan integrasi berkelanjutan.[pylint] C0111:Missing module docstring
kesalahan@ dasiuminh2510 jawabannya sempurna. Tetapi dalam versi VSC yang lebih baru Anda tidak akan menemukan opsi untuk mengedit atau menempelkan perintah itu di Pengaturan Pengguna . Sekarang dalam versi yang lebih baru untuk menambahkan kode itu ikuti langkah-langkah ini :
Di dalam kurung kurawal pertama. Pastikan pylint-django itu .
Semoga ini bisa membantu!
sumber
pip install pylint-django
. Jika ekstensi tidak diinstal, perubahan pada pengaturan Anda ini tampaknya gagal diam-diam, mematahkan semua linting.Missing module docstringpylint(missing-module-docstring)
. Apa yang bisa dilakukan untuk ini?Instal Django pylint:
ctrl + shift + p> Preferensi: Mengkonfigurasi Pengaturan Khusus Bahasa> Python
Setting.json tersedia untuk bahasa python akan terlihat seperti di bawah ini:
sumber
Inilah jawabannya. Didapat dari posting reddit saya ... https://www.reddit.com/r/django/comments/6nq0bq/class_question_has_no_objects_member/
sumber
objects = models.Manager()
di kelas model melakukannya untuk saya dalam Kode VS. Terima kasih.Saya sudah mencoba semua solusi yang mungkin ditawarkan tetapi sayangnya pengaturan vscode saya tidak akan mengubah jalur linter-nya. Jadi, saya melangkah untuk menjelajahi pengaturan vscode di pengaturan> Pengaturan Pengguna> python . Temukan Linting: Jalur Pylint dan ubah menjadi "pylint_django". Jangan lupa untuk mengubah linter menjadi "pylint_django" di pengaturan> Pengaturan Pengguna> konfigurasi python dari "pyLint" menjadi "pylint_django".
sumber
PEMBARUAN UNTUK VS KODE 1.40.0
Setelah melakukan:
Ikuti tautan ini: https://code.visualstudio.com/docs/python/linting#_default-pylint-rules
Perhatikan bahwa cara
pylint
memperhitungkannyapylint-django
adalah dengan menetapkan:dalam
settings.json
Kode VS.Tetapi setelah itu, Anda akan melihat banyak kesalahan linting baru. Kemudian, baca apa yang dikatakan di sini:
Apa yang telah saya lakukan adalah membuat
.pylintrc
file seperti yang dijelaskan dalam tautan, dan kemudian, mengkonfigurasi parameter berikut di dalam file (membiarkan sisa file tidak tersentuh):Sekarang
pylint
berfungsi seperti yang diharapkan.sumber
Anda dapat mengubah linter untuk ekstensi Python untuk Visual Studio Code.
Di VS buka Command Palette Ctrl + Shift + P dan ketik salah satu dari perintah berikut:
ketika Anda memilih linter itu akan diinstal. Saya mencoba flake8 dan sepertinya masalah terselesaikan untuk saya.
sumber
Hanya menambahkan pada apa yang dikatakan @ Mallory-Erik: Anda dapat menempatkannya
objects = models.Manager()
di modals:sumber
Pertama instal pylint-django menggunakan perintah berikut
Kemudian jalankan perintah kedua sebagai berikut:
--load-plugins pylint_django diperlukan untuk meninjau kode django dengan benar
sumber
Jika Anda menggunakan python 3
Jika python <3
CATATAN: Versi 2.0, membutuhkan pylint> = 2.0 yang tidak lagi mendukung Python! ( https://pypi.org/project/pylint-django/ )
sumber
Dengan melakukan
Question = new Question()
(saya menganggapnew
ini salah ketik) Anda menimpa model Pertanyaan dengan niatQuestion
. Seperti yang dikatakan Sayse dalam komentar: jangan gunakan nama yang sama untuk variabel Anda sebagai nama model. Jadi ubah ke sesuatu sepertimy_question = Question()
.sumber
Bagaimana dengan menekan kesalahan pada setiap baris yang spesifik untuk setiap kesalahan?
Sesuatu seperti ini: https://pylint.readthedocs.io/en/latest/user_guide/message-control.html
Kesalahan: [pylint] Kelas 'class_name' tidak memiliki anggota 'member_name' Itu dapat ditekan pada baris itu dengan:
sumber
Ubah linter Anda ke - flake8 dan masalah akan hilang.
sumber
Masalah ini terjadi ketika saya menggunakan pylint_runner
Jadi yang saya lakukan adalah membuka file .pylintrc dan menambahkan ini
sumber
Saya dapat memperbarui pengaturan pengguna. Json
Di mac saya disimpan di:
Di dalamnya, saya mengatur yang berikut:
Itu memecahkan masalah bagi saya.
sumber