জ্যাঙ্গোতে আমি কীভাবে বহু থেকে বহু ক্ষেত্রের বিকল্প করতে পারি?


202

যখন আপনার একাধিক থেকে অনেকের সম্পর্ক থাকে ( related_nameনা, through) এবং আপনি অ্যাডমিন ইন্টারফেসটি ব্যবহার করার চেষ্টা করছেন তখন আপনাকে প্রথমে এন্ট্রি তৈরি করতে আপনার কোনও সম্পর্ক স্থাপন করা প্রয়োজন যদিও এটি আপনাকে প্রবেশ করতে পারে না।

আমি একটি অ্যাপ্লিকেশন তৈরি করছি যা ইভেন্টের সংগঠক। কল্পনা করুন আমাদের Eventএবং Groupমডেলগুলি অনেকগুলি থেকে বহু সম্পর্কের সাথে আবদ্ধ।

জ্যাঙ্গো related_nameঅন্য দুটি টেবিলের সূচকগুলি সহ আরও একটি সারণী তৈরি করে।
কিন্তু আমি কোনো কারণ কেন এই অতিরিক্ত টেবিল দেখতে হয়েছে জনবহুল করা হবে।

যদি আমি পিএইচপিএমআইএডমিনের মাধ্যমে ডাটাবেসের সাথে কাজ করি তবে আমি একটি Groupনিবন্ধন না করে একটি তৈরি করতে পারি Event, যেহেতু উভয়ের মধ্যে সংযোগটি কেবল একটি পৃথক টেবিলের মাধ্যমে হয় এবং প্রদত্ত স্তরে কোনও ডাটাবেস মান প্রয়োগ করা যায় না।

আমি এডমিন ইন্টারফেসটিকে কীভাবে এটি উপলব্ধি করতে পারি?
জ্যাঙ্গোতে আমি কীভাবে বহু থেকে বহু ক্ষেত্রকে alচ্ছিক করব?

উত্তর:


348

আপনি যদি মাইনটটম্যানির সম্পর্কটিকে নির্দিষ্ট করে না দিয়ে নির্দিষ্ট করতে চান তবে এটি কেবলমাত্র ব্যবহার করুন blank=True:

class Group(models.Model):
    ...
    events = models.ManyToManyField(Event, blank=True)

7
এটি সমস্যার সমাধান করে। ফাঁকাটি ব্যবহার করা আমার পক্ষে তেমন স্পষ্ট ছিল না কারণ আমি ভেবেছিলাম যে বহু লোকজন একটি টেবিল তৈরি করেছে যা ইভেন্টগুলিকে গ্রুপগুলির সাথে সংযুক্ত করে (ইভেন্টগুলি = মডেলগুলি any ইভেন্ট যেহেতু ফাঁকা ঘটনাটি আসলে গ্রুপের টেবিলে কোনও ক্ষেত্র নয় Any যাইহোক এটি এতটা ধন্যবাদ কাজ করেছে আপনাকে ধন্যবাদ !!!
ডিজেড।

9
@ মাউস আমি হ্যাঁ মনে করি, ফাঁকাটি জ্যাঙ্গো বৈধতার জন্য, এবং ডাটাবেসটির জন্য শূন্য। এই ধরণের ক্ষেত্রে (যেমন ইন্টিজারফিল্ডের মতো) অন্যটিকে আমার মনে হয় না এমনটিকে রাখার কোনও মানে হয় না
la

17
আপনার কি আসলেই থাকা দরকার null=True? আমি মাঠে ছিলাম মাঠে nullকোনও প্রভাব ফেলবে না ManyToMany: স্ট্যাকওভারফ্লো
টাইলার হেইস

5
হ্যাঁ, ওম @ টাইলারহয়েস ঠিক আছে। নাল = সত্যটি মূলত একটি অনিঃপত্তি এবং ম্যান্টিটোম্যানির প্রসঙ্গে অযৌক্তিক। আমি কীভাবে ভুল করছি তা দেখানোর জন্য আমি উন্মুক্ত।
বেন রবার্টস

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