জ্যাঙ্গো স্বয়ংক্রিয়ভাবে প্রাথমিক কী হিসাবে একটি আইডি ক্ষেত্র তৈরি করে।
এখন এই আইডি দিয়ে আমার অবজেক্টটি নেওয়া উচিত।
object = Class.objects.filter()
এই ফিল্টারটি কীভাবে লিখবেন?
জ্যাঙ্গো স্বয়ংক্রিয়ভাবে প্রাথমিক কী হিসাবে একটি আইডি ক্ষেত্র তৈরি করে।
এখন এই আইডি দিয়ে আমার অবজেক্টটি নেওয়া উচিত।
object = Class.objects.filter()
এই ফিল্টারটি কীভাবে লিখবেন?
উত্তর:
আপনি যদি কোনও জিনিস পেতে চান তবে ব্যবহার get()
করা আরও সহজ:
obj = Class.objects.get(pk=this_object_id)
id
একটি অন্তর্নির্মিত ফাংশনে যা কোনও বস্তুর পরিচয় দেয়। বেশিরভাগ ক্ষেত্রে বিষয়গুলিকে রেফারেন্স করা id
সঠিক কাজ যেমন Class.objects.get(id=this_object_id)
কাজ করবে। তবে এটি অনুমান করার মতো কিছু।
আমি এখানে একই সমস্যার জন্য এসেছি, তবে ভিন্ন কারণে:
Class.objects.get(id=1)
এই কোডটি একটি ImportError ব্যতিক্রম উত্থাপন করছিল। আমাকে বিভ্রান্ত করার বিষয়টি হ'ল নীচের কোডটি জরিমানা কার্যকর করেছে এবং প্রত্যাশার ফলাফল হিসাবে সেটগুলি প্রত্যাবর্তন করেছে:
Class.objects.all()
get()
পদ্ধতির জন্য ট্রেসব্যাকের লেজ :
File "django/db/models/loading.py", line 197, in get_models
self._populate()
File "django/db/models/loading.py", line 72, in _populate
self.load_app(app_name, True)
File "django/db/models/loading.py", line 94, in load_app
app_module = import_module(app_name)
File "django/utils/importlib.py", line 35, in import_module
__import__(name)
ImportError: No module named myapp
জাঙ্গোর অন্তর্গত কোডটি পড়ে loading.py
, আমি এই সিদ্ধান্তে পৌঁছেছি যে settings.py
আমার অ্যাপ্লিকেশনটির আমার খারাপ পথ রয়েছে যাতে আমার Class
মডেল সংজ্ঞা রয়েছে । আমাকে যা করতে হয়েছিল তা হ'ল অ্যাপ্লিকেশনটির পথটি সঠিক করা এবং get()
পদ্ধতিটি জরিমানা করে।
এখানে আমার settings.py
সংশোধন করা পথটি রয়েছে:
INSTALLED_APPS = (
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
# ...
'mywebproject.myapp',
)
সমস্ত বিভ্রান্তির কারণ হয়েছিল কারণ আমি জ্যাঙ্গোর ওআরএমকে স্ট্যান্ডেলোন হিসাবে ব্যবহার করছি, তাই নামস্থানটি এটি প্রতিফলিত করতে হয়েছিল।
তুমি ব্যবহার করতে পার:
objects_all=Class.objects.filter(filter_condition="")
এটি যদি কোনও একটি বস্তু পায় তবে এটি কোয়েরি সেটটি ফেরত দেবে। আপনার যদি প্রয়োজন হয় তবে একটি অবজেক্ট ব্যবহার করুন:
obj=Class.objects.get(conditon="")
আপনি get_object_or_404 জাঙ্গো শর্টকাটও ব্যবহার করতে পারেন । যদি বস্তুটি পাওয়া না যায় তবে এটি 404 ত্রুটি উত্থাপন করে।
pk
যে কোনও মডেলের জন্য প্রাথমিক কী উল্লেখ করার পক্ষে পছন্দসই উপায়।id
ক্ষেত্রটি কেবল তখনই উত্পন্ন হয় যদি মডেল লেখক নির্দিষ্টভাবে কোনও প্রাথমিক কী নির্দিষ্ট না করে। লেখক যদি করেনি একটি প্রাথমিক কী ফিল্ড নামে না হয় তা আপনাকে নির্দিষ্টid
, তারপর সেখানে একটা হবে নাid
ক্ষেত্র।