पृष्ठभूमिप्रति-वस्तु अनुमतियाँ जोड़ने व्यवस्थापक
मैं एक छुट्टी किराये की साइट के लिए एक Django एप्लिकेशन विकसित करने कर रहा हूँ django करने के लिए। इसमें दो प्रकार के उपयोगकर्ता, किराएदारों और संपत्ति प्रबंधक होंगे।
मैं संपत्ति प्रबंधकों को django व्यवस्थापक में अपने किराये की संपत्तियों का प्रबंधन करने में सक्षम होना चाहता हूं। हालांकि, वे केवल अपनी संपत्ति का प्रबंधन करने में सक्षम होना चाहिए।
मुझे एहसास है कि डिफ़ॉल्ट django व्यवस्थापक इसका समर्थन नहीं करता है। मैं सोच रहा हूं कि इस कार्यक्षमता को जोड़ने में कितना परेशानी होगी, और यदि यह संभव है, तो इसे संभालने का सबसे अच्छा तरीका क्या है।
लक्ष्य
आदर्श रूप में, मैं यह कुछ इस तरह काम कर चित्र:
auth
पहले से ही इस तरह की अनुमति देता है अनुमतियाँ:
vacation | rental | Can add rental vacation | rental | Can change rental vacation | rental | Can delete rental
मैं करने के लिए इस बदलना चाहते हैं कुछ ऐसा:
vacation | rental | Can add any rental vacation | rental | Can change any rental vacation | rental | Can delete any rental vacation | rental | Can add own rental vacation | rental | Can change own rental vacation | rental | Can delete own rental
संभव समाधान
ढांचा कैसे तय होगा किराए पर लेने (या जो भी) उपयोगकर्ता के अंतर्गत आता है तो क्या होगा? मुझे लगता है कि यह vacation.Rental
कक्षा को देखने के लिए जांचता है कि क्या यह ForeignKey
से auth.User
(संभवतः कुछ विशेष नाम, जैसे 'स्वामी') है।
एक नई
vacation.Rental
बनाने पर,ForeignKey
फ़ील्ड का मान वर्तमान उपयोगकर्ता के आईडी के लिए मजबूर हो जाएगा।ForeignKey
फ़ील्ड फॉर्म पर प्रदर्शित नहीं होगा।लिस्टिंग किराया पर, वर्तमान उपयोगकर्ता से मेल खाने वाले
ForeignKey
के साथ केवल किराए पर प्रदर्शित किया जाएगा।किराया बदलने पर, वर्तमान उपयोगकर्ता से मेल खाने वाले
ForeignKey
के साथ केवल किराए पर प्रदर्शित किया जाएगा।ForeignKey
फ़ील्ड फॉर्म पर प्रदर्शित नहीं होगा।
, इस, एक उपयुक्त ForeignKey
क्षेत्र होने के लिए किसी भी मॉडल के लिए काम करने के लिए ही नहीं, हमारे vacation.Rental
मॉडल सक्षम होना चाहिए।
क्या यह ध्वनि अभी तक व्यवहार्य है, या मुझे एक अलग दिशा में जाना चाहिए?
जटिलताओं
अब, यहाँ मुश्किल हिस्सा है; मुझे यकीन नहीं है कि इसे कैसे संभालें। मान लें कि Rental
में कई "RentalPhotos" हो सकते हैं। RentalPhoto
में ForeignKey
से Rental
है।उपयोगकर्ता अपने स्वयं के किराये में फोटो जोड़ने में सक्षम होना चाहिए। हालांकि, तस्वीरों में उपयोगकर्ता ForeignKey
नहीं है, इसलिए तस्वीर का मालिक कौन है यह जानने का कोई तरीका नहीं है।
क्या यह ForeignKey
के बाद फ्रेमवर्क में कुछ चालबाजी द्वारा हल किया जा सकता है जब तक कोई ऑब्जेक्ट ForeignKey
उपयोगकर्ता के साथ नहीं मिलता है? या क्या मुझे आसान तरीका निकालना चाहिए और RentalPhoto
(और अन्य सभी 'संबंधित' से Rental
) को ForeignKey
उचित auth.User
पर देना चाहिए? दूसरा दृष्टिकोण अनियंत्रित अनावश्यकता को आमंत्रित करेगा, पहले शायद अनावश्यक प्रसंस्करण ओवरहेड की आवश्यकता होगी ...
यदि मैं पूरी तरह से भटक रहा हूं तो कृपया मुझे सही दिशा में इंगित करने में संकोच न करें। किसी भी सहायता के लिए अग्रिम रूप से धन्यवाद।
धन्यवाद, अनुराग; यह उतना सामान्य नहीं है जितना मैं चाहता हूं लेकिन मैं इसे मानूंगा। मैं इसे 'auth' में कैसे बांध सकता हूं, इसलिए मेरी नई अनुमतियां सूची में दिखाई देती हैं? –
@no संपादन देखें। –