सवाल डीजेंगो मॉडल एलडीएपी प्रविष्टि में हेरफेर करने के लिए [बंद]


मैं वर्तमान में एक परियोजना पर काम कर रहा हूं Django ढांचा और OpenLDAP। लेकिन मैं एक समस्या में भाग गया।

मेरे एलडीएपी डेटाबेस में, मेरे पास निम्न विशेषताओं के साथ खाते नामक एक प्रविष्टि है:

dn: ou=Accounts,dc=example,dc=ro
objectClass: groupOfNames
objectClass: top
cn: Accounts
member: cn=test1,ou=Accounts,dc=example,dc=ro
member: cn=test2,ou=Accounts,dc=example,dc=ro
member: cn=test3,ou=Accounts,dc=example,dc=ro
... (and so on, about 10 test users)

Django मॉडल से मेरी एलडीएपी प्रविष्टियों में हेरफेर करने के लिए, मैं उपयोग करता हूं django_ldapdb पायथन पैकेज। में models.py django में फ़ाइल मैंने निम्नलिखित चीजों को परिभाषित किया:

class LDAPEntry():
    base_dn = "ou=Accounts,dc=example,dc=ro"
    object_classes = ["groupOfNames"]

    group_name = CharField(db_column="cn", primary_key=True)
    member_attribute = CharField(db_column="member")

    # methods for displaying the group name(__str__ & __unicode__)

उसके बाद, मैं एक Django शैल खोलता हूं, और कुछ प्रश्नों के साथ खेलना शुरू करता हूं:

#this returns a instance for the Accounts group
group = LDAPEntry.objects.get(group_name = "Accounts")

#then i try to see the members that are part of this group
group.member

# and this returns the following thing:
u'cn=test1,ou=Accounts,dc=example,dc=ro'

इसे ध्यान में रखते हुए, मुझे एहसास हुआ कि मेरे डीजेगो मॉडल में सदस्य क्षेत्र में एलडीएपी डेटाबेस में, मेरी एलडीएपी लेखा प्रविष्टि में केवल प्रथम सदस्य विशेषता के बारे में जानकारी है।

मैं जो पूछना चाहता हूं वह है: क्या एक संभावित तरीका है जिसमें मैं एक Django मॉडल फ़ील्ड को कई मान रखने के लिए कह सकता हूं? (मैं अपने "सदस्य" फ़ील्ड को खाता समूह में सभी सदस्यों के बारे में जानकारी रखने के लिए चाहता हूं, मूल रूप से उपयोगकर्ताओं के सभी डिस्टिंग्यूश नामों को पकड़ना)।

आपका बहुत बहुत धन्यवाद।


1
2017-12-12 10:15


मूल


मुझे खुशी है कि आपने अपनी समस्या हल की है, और ऐसा लगता है जैसे यह अन्य लोगों के लिए उपयोगी हो सकता है, लेकिन, क्या यह एक उबंटू सवाल है? क्या इसे एक अलग एसई साइट पर माइग्रेट किया जाना चाहिए? - djeikyb
असल में, मुझे लगता है कि आप सही हैं। और मैं अपनी गलती के लिए क्षमा चाहता हूं। - John


जवाब:


यह पता चला है कि स्थिति को बदलकर हल किया जा सकता है:

member_attribute = CharField(db_column="member")

सेवा मेरे:

member_attribute = ListField(db_column="member")

और इस सब से सदस्य में मूल्य हिसाब किताब प्रवेश प्राप्त किया जाता है।


2
2017-12-12 11:06