ক্লাসে কোনও অবজেক্টের সদস্য নেই


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

ফাংশনটির প্রথম লাইন এতে ত্রুটি পায় Question.objects.all():

E1101: শ্রেণি 'প্রশ্ন' এর কোনও অবজেক্ট নেই 'সদস্য'

আমি জ্যাঙ্গো ডকুমেন্টেশন টিউটোরিয়াল অনুসরণ করছি এবং তাদের একই কোড আপ এবং চলমান রয়েছে।

আমি একটি উদাহরণ কল করার চেষ্টা করেছি।

Question = new Question()
and using MyModel.objects.all()

এছাড়াও models.pyএই শ্রেণীর জন্য আমার কোডটি হ'ল ...

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

কোন উপকারে আসার পরেও আমার এই ত্রুটি নেই।

আমি পাইলেট সম্পর্কে পড়েছি এবং এটি চালিয়েছি ...

pylint --load-plugins pylint_django

যা কোনও সাহায্য করেনি, এমনকি গিথুব রিডমে ফাইল বলে ...

জাজানো-উত্পন্ন বৈশিষ্ট্য যেমন মডেল.ওজেক্টস বা ভিউস.রেকোয়েস্ট সম্পর্কে সতর্কতা প্রতিরোধ করে।

আমি আমার ভার্চুয়ালেনভের মধ্যে আদেশটি চালিয়েছি, এবং এখনও কিছুই নেই।

সুতরাং কোন সাহায্য দুর্দান্ত হবে।


7
ব্যবহারpylint --generated-members=objects
রাজা সাইমন

দুঃখিত, এটি আমার সেন্টিমিটারে চালিয়েছেন এবং এটি কোনও জিনিস পরিবর্তন করে না।
বুয়েনক্রিপটেড

আপনার অজগর এবং জাঙ্গো সংস্করণটি কী?
গ্যাভিন আক্তিমিয়ার

1
ভার্সন অজগর 3.6.0 এবং django 1.11.3
বুয়েনক্রিপটেড

2
আমার জন্য কী সমস্যার সমাধান Managerহয়েছে তা models.pyফাইলটিতে একটি উদাহরণ তৈরি করছে । আরও তথ্যের জন্য জাজানো ডকুমেন্টেশন পড়ুন ।
ইকরাজ মোহাম্মদ

উত্তর:


335

নিম্নলিখিত হিসাবে pylint-djangoব্যবহার করে ইনস্টল করুনpip

pip install pylint-django

তারপরে ভিজ্যুয়াল স্টুডিও কোডটিতে গিয়ে: ব্যবহারকারীর সেটিংস ( Ctrl+ ,অথবা ফাইল> পছন্দসমূহ> যদি সেটিংস উপলব্ধ থাকে) নীচে রাখুন (দয়া করে ভিএসসিতে কাস্টম ব্যবহারকারী সেটিংসের জন্য প্রয়োজনীয় কোঁকড়া ধনুর্বন্ধনীগুলি নোট করুন):

{"python.linting.pylintArgs": [
     "--load-plugins=pylint_django"
],}

ব্যবহারকারী
সেটিংসটি

ফাইল-> পছন্দসমূহ-> সেটিংসে যান বা "Ctrl + কমা" ব্যবহার করুন
সুকমা সাপুত্র

29
অসাধারণ! আমি আরও উল্লেখ করতে চাই যে আপনি প্লাগইন বিকল্পটি কোনও .pylintrcফাইলটিতে রাখতে পারেন: load-plugins=pylint_django এবং সেভাবে এটি সিএলআই দ্বারাও গ্রহণ করা হবে, সুতরাং এটি অবিচ্ছিন্ন ইন্টিগ্রেশন সেটিংয়ে কাজ করবে।
সিবনেরিয়ান

এগুলি করার পরে আমি [pylint] C0111:Missing module docstringত্রুটি পাচ্ছি
বিষ্ণু শর্মা

1
অফিসিয়াল ডকটিতে আরও বিশদ: কোড. visualstudio.com/docs/python/…
আন্তন ড্যানিলচেনকো

98

@ টাইমিনহ 2510 উত্তর সঠিক। তবে ভিএসসির নতুন সংস্করণগুলিতে আপনি ব্যবহারকারীর সেটিংসে সেই আদেশটি সম্পাদনা বা আটকানোর বিকল্প খুঁজে পাবেন না । এখন নতুন সংস্করণে কোডটি যুক্ত করতে এই পদক্ষেপগুলি অনুসরণ করুন :

কমান্ড প্যালেটটি খুলতে ctr + sft + P টিপুন । এখন কমান্ড প্যালেটে টাইপ পছন্দসমূহ: ভাষা নির্দিষ্ট সেটিংস কনফিগার করুন । এখন পাইথন নির্বাচন করুন । এখানে ডানদিকে এই কোডটি পেস্ট করুন

"python.linting.pylintArgs": [
        "--load-plugins=pylint_django",
    ]

প্রথম কোঁকড়া ধনুর্বন্ধনী ভিতরে। পাইলট-জাঙ্গো নিশ্চিত করুন ।

আশা করি এটি সাহায্য করবে!


6
অন্যথায় জসন ফাইলে কমা রাখতে ভুলবেন না, এটি সঠিকভাবে কাজ করবে না।
জর্জি স্টোইনভ

4
এছাড়াও ভুলবেন না pip install pylint-django। যদি এক্সটেনশনটি ইনস্টল না করা থাকে, আপনার সেটিংসে এই পরিবর্তনটি সমস্ত আস্তরণ ভেঙে চুপচাপ ব্যর্থ বলে মনে হচ্ছে।
ডাস্টিন মিশেলস

1
ধন্যবাদ. আপনি এখানে অফিসিয়াল ভিএস কোড ডকুমেন্টেশনে একই তথ্য পেতে পারেন: কোড. visualstudio.com/docs/python/…
আন্তন ড্যানিলচেনকো

এটি পূর্ববর্তী ত্রুটিটি সমাধান করেছে। কিন্তু, এখন একটি সতর্কতা আসছে। Missing module docstringpylint(missing-module-docstring)। এর জন্য কী করা যায়?
অনুকূল

34

জাজানো পাইলট ইনস্টল করুন:

pip install pylint-django

ctrl + shift + p> পছন্দসমূহ: ভাষা নির্দিষ্ট সেটিংস কনফিগার করুন> পাইথন

পাইথন ভাষার জন্য সেটিংস.জসনগুলি নীচের মত দেখতে হবে:

{
    "python.linting.pylintArgs": [
        "--load-plugins=pylint_django"
    ],

    "[python]": {

    }
}

26

উত্তরের উত্তর। আমার রেডডিট পোস্টটি পেয়েছেন ... https://www.reddit.com/r/django/comments/6nq0bq/class_question_ কি_নো_জব্যাক_মেম্বার /

এটি কোনও ত্রুটি নয়, এটি কেবল ভিএসসির একটি সতর্কতা। জ্যাঙ্গো সেই বৈশিষ্ট্যটি সমস্ত মডেলের শ্রেণিতে গতিশীলভাবে যুক্ত করে (এটি হুডের নিচে প্রচুর যাদু ব্যবহার করে), সুতরাং IDE শ্রেণীর ঘোষণাপত্রটি দেখে এটি সম্পর্কে জানতে পারে না, সুতরাং এটি আপনাকে একটি সম্ভাব্য ত্রুটি সম্পর্কে সতর্ক করে (এটি নয়)। অবজেক্টস আসলে ম্যানেজারের উদাহরণ যা ডিবি কে অনুসন্ধানে সহায়তা করে। আপনি যদি সত্যিই সেই সতর্কবার্তাটি থেকে মুক্তি পেতে চান তবে আপনি আপনার সমস্ত মডেলগুলিতে গিয়ে অবজেক্টস = মডেল যুক্ত করতে পারেন an ম্যানেজার () এখন, ভিএসসি ঘোষিত অবজেক্টগুলি দেখতে পাবে এবং এ সম্পর্কে আবার কোনও অভিযোগ করবে না।


13
objects = models.Manager()মডেল ক্লাসে এটি ভিএস কোডে আমার জন্য করেছিল। ধন্যবাদ।
ম্যালরি-এরিক

21

আমি প্রস্তাবিত সমস্ত সম্ভাব্য সমাধান চেষ্টা করেছি কিন্তু দুর্ভাগ্যক্রমে আমার vscode সেটিংস এর লম্বা পথ পরিবর্তন করবে না। সুতরাং, আমি সেটিংস> ব্যবহারকারীর সেটিংস> অজগরগুলিতে vscode সেটিংস অন্বেষণ করতে ট্রাইড করি । আবরণ সন্ধান করুন: পাইলট পথ এবং এটি "পাইলট_জাজানো" তে পরিবর্তন করুন। সেটিংস> ব্যবহারকারী সেটিংস> পাইথন কনফিগারেশনকে "পাইলিন্ট" থেকে "পাইলিন_ডজ্যাঙ্গো" তে "পাইলেট_ডজ্যাঙ্গো" এ পরিবর্তন করতে ভুলবেন না ।

লিন্টার পথ সম্পাদনা করুন


1
MacOS হাই সিয়েরা এবং VSC 1.38 এ আমার জন্য কাজ করেছেন, এটি সরবরাহ করে যে এর আগে আমি আমার ভার্চুয়াল পরিবেশে "পাইপ ইনস্টল পাইলট-জাজানো" চালাতাম।
আন্দ্রেস মেজা-এস্ক্যালান

12

ভিএস কোডের জন্য আপডেট 1.40.0

করার পরে:

$ pip install pylint-django

এই লিঙ্কটি অনুসরণ করুন: https://code.visualstudio.com/docs/python/linting#_default-pylint-rules

লক্ষ্য করুন যে pylintঅ্যাকাউন্টে প্রবেশের pylint-djangoউপায়টি উল্লেখ করে:

"python.linting.pylintArgs": ["--load-plugins", "pylint_django"]

মধ্যে settings.jsonবনাম কোড।

তবে এর পরে, আপনি অনেকগুলি নতুন আবরণের ত্রুটি লক্ষ্য করবেন। তারপরে, এটি এখানে কী বলেছে তা পড়ুন:

যখনই (ডিফল্ট) python.linting.pylintUseMinimalCheckersসেট করা থাকে তখন এই আর্গুমেন্টগুলি পাস করা হয় true। আপনি যদি একটি মান নির্দিষ্ট করে থাকেন pylintArgsবা একটি পাইলিন্ট কনফিগারেশন ফাইল ব্যবহার করেন (পরবর্তী বিভাগটি দেখুন), তবে স্পষ্টতই pylintUseMinimalCheckersমিথ্যাতে সেট করা আছে

আমি যা করেছি তা .pylintrcলিঙ্কে বর্ণিত হিসাবে একটি ফাইল তৈরি করা এবং তারপরে ফাইলের অভ্যন্তরে নিম্নলিখিত প্যারামিটারগুলি কনফিগার করা হয়েছে (ফাইলটির বাকী অংশটি স্পর্শ না করে):

load-plugins=pylint_django

disable=all

enable=F,E,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned,unused-variable,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode

এখন pylintপ্রত্যাশার মতো কাজ করে।


পৃথক .pylintrc ফাইল তৈরির পরিবর্তে, আপনি নিজের সেটিংসে এটি করে একই প্রভাবটি অর্জন করতে পারেন j json: {"python.linting.pylintArgs": ["--লোড-প্লাগইনস = পাইলেট_ডাজাঙ্গো", "- ডিসাইবল = সব "," --enable = এফ, ই, অ্যাক্সেসযোগ্য, নকল-কী, অপ্রয়োজনীয়-সেমিকোলন, গ্লোবাল-ভেরিয়েবল-নন-বরাদ্দ, অব্যবহৃত-পরিবর্তনশীল, বাইনারি-অপ-ব্যতিক্রম, খারাপ-ফর্ম্যাট-স্ট্রিং, অসাধারণ-ব্যাকস্ল্যাশ-ইন -স্ট্রিং, ব্যাড-ওপেন-মোড "]}
স্কয়ার_কনিভেল

11

আপনি ভিজুয়াল স্টুডিও কোডের জন্য পাইথন এক্সটেনশনের লাইনটারটি পরিবর্তন করতে পারেন।

ভিএস-তে কমান্ড প্যালেট সিটিআরএল + শিফট + পি খুলুন এবং নিম্নলিখিত কমান্ডগুলির মধ্যে একটিতে টাইপ করুন:

পাইথন: লিন্টার নির্বাচন করুন

আপনি যখন একটি লিন্টার নির্বাচন করেন এটি ইনস্টল করা হবে। আমি flake8 চেষ্টা করেছি এবং এটি আমার জন্য সমস্যার সমাধান বলে মনে হচ্ছে।


1
এটি কাজ করার সময়, আমি ফ্ল্যাঙ্ক 8 সত্যিই বিরক্তিকর হিসাবে দেখলাম lin
রিচার্ড ডান

4

@ ম্যালরি-এরিক যা বলেছেন তাতে কেবল যোগ করে: আপনি objects = models.Manager()এটি মডেলগুলিতে রাখতে পারেন:

class Question(models.Model):
    # ...
    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
    # ...
    def __str__(self):
        return self.question_text
    question_text = models.CharField(max_length = 200)
    pub_date = models.DateTimeField('date published')
    objects = models.Manager()

3

প্রথমে নিম্নলিখিত কমান্ডটি ব্যবহার করে পাইলট-জাঙ্গো ইনস্টল করুন

$ pip install pylint-django

তারপরে দ্বিতীয় কমান্ডটি নিম্নরূপে চালান:

$ pylint test_file.py --load-plugins pylint_django

- লোড-প্লাগইনস পাইলিন্ট_জ্যাঙ্গো সঠিকভাবে জাঙ্গোর কোড পর্যালোচনা করার জন্য প্রয়োজনীয়


2

পাইথন ব্যবহার করলে 3

python3 -m pip install pylint-django

অজগর <3

python -m pip install pylint-django==0.11.1

দ্রষ্টব্য: সংস্করণ 2.0, এর জন্য পাইলট> = 2.0 প্রয়োজন যা পাইথন 2 আর সমর্থন করে না! ( https://pypi.org/project/pylint-django/ )


1

করে Question = new Question()(আমি ধরে নিচ্ছি newএটি একটি টাইপো) আপনি প্রশ্নটির মডেলটির একটি ইন্টেন্ট দিয়ে ওভাররাইট করছেন Question। সায়েসের মতামত মন্তব্যগুলিতে বলেছেন: আপনার চলকটির জন্য একই নামটি মডেলের নাম হিসাবে ব্যবহার করবেন না। সুতরাং এটি ভালো কিছু পরিবর্তন করুন my_question = Question()


এটি আমার জাঙ্গো এবং পাইথোর পিসি কনফিগারেশনের সাথে কিছু, আমি এটি আমার ম্যাকবুকটিতে পুনর্নির্মাণ করেছি এবং এটি ঠিক কাজ করে। এছাড়াও আমি আমার কোডটিতে আপনার পরামর্শটি চেষ্টা করেছি এবং এতে কোনও পার্থক্য হয়নি।
বুয়েনক্রিপটেড

1

প্রতিটি ত্রুটির জন্য নির্দিষ্ট প্রতিটি লাইনে ত্রুটিগুলি দমন করা সম্পর্কে কীভাবে?

এর মতো কিছু: https://pylint.readthedocs.io/en/latest/user_guide/message-control.html

ত্রুটি: [পাইলট] শ্রেণি 'শ্রেণি_নাম' এর কোনও 'সদস্য_নাম' সদস্য নেই এটি এই লাইনে দমন করা যেতে পারে:

  # pylint: disable=no-member

2
এই সমাধানটি যতটা হিংস্র-শক্তি, তেমনি নিজের তাত্পর্য রক্ষা করার একমাত্র উপায়। আমি কয়েক ডজন বিভিন্ন মডিউলগুলিতে এই ত্রুটিগুলি পাচ্ছি, আমি প্রতিবারই একটি নতুন দেখায় সেটিংস পরিবর্তন করব না।
প্রেজেমেক ডি


0

আমি যখন পাইলট_রুনার ব্যবহার করি তখন এই সমস্যাটি হ্যাণ্ডড হয়

সুতরাং আমি যা করি তা .pylintrc ফাইলটি খুলুন এবং এটি যুক্ত করুন

# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=objects

0

আমি ব্যবহারকারী সেটিংস.জসন আপডেট করতে সক্ষম হয়েছি

আমার ম্যাক এ এটি জমা ছিল:

~/Library/Application Support/Code/User/settings.json

এর মধ্যে, আমি নিম্নলিখিতগুলি সেট করেছি:

{
    "python.linting.pycodestyleEnabled": true,
    "python.linting.pylintEnabled": true,
    "python.linting.pylintPath": "pylint",
    "python.linting.pylintArgs": ["--load-plugins", "pylint_django"]
}

এটি আমার জন্য সমস্যাটি সমাধান করেছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.