उपयोगकर्ता को django में एक समूह में जोड़ना


139

मैं किसी उपयोगकर्ता को समूह के नाम से django में समूह में कैसे जोड़ूंगा?

मे यह कर सकती हु:

user.groups.add(1) # add by id

मैं ऐसा कुछ कैसे करूंगा:

user.groups.add(name='groupname') # add by name

क्या यह समाधान संस्करण संवेदनशील है? जब मैंने कोशिश की यह django 1.8 है, मुझे "अप्रत्याशित कीवर्ड: नाम" मिला
rschwieb

जवाबों:


248

समूह के नाम के साथ समूह मॉडल का उपयोग करके समूह का पता लगाएं, फिर उपयोगकर्ता को user_set में जोड़ें

from django.contrib.auth.models import Group
my_group = Group.objects.get(name='my_group_name') 
my_group.user_set.add(your_user)

17
इसके लिए धन्यवाद। यह मूर्खतापूर्ण लगता है कि कुछ सबसे बुनियादी चीजें या तो लापता हैं या
डोजंगो

1
docs.djangoproject.com/en/dev/intro/tutorial01 सेक्शन 'प्लेइंग विद द एपीआई' में इसी तरह के उदाहरण हैं
juankysmith

9
ट्यूटोरियल बहुत उपयोगी है, मेरा मतलब यह था कि मैं डॉक्स के एक सेक्शन में प्रोग्राम बनाने के लिए ऑर्किटेक्ट के तहत देखने की उम्मीद करूंगा। इसके बजाय सभी में एक कमजोर पैराग्राफ है: docs.djangoproject.com/en/1.3/topics/auth/#groups मुझे लगता है कि यह ध्यान में रखने में मदद करता है कि सामान्य मॉडल सिर्फ नियमित मॉडल हैं, और मानक मॉडल संदर्भ लागू होता है।
फ्रांसिस याकोनिएलो

user_setDjango डॉक्टर में कहाँ है ? मैं इसे कहीं भी नहीं ढूँढ सकता
मिन्ह थाई

1
@MinhThai एक रिवर्स रिलेशन फ़ील्ड के लिए डिफ़ॉल्ट मान <content_type>_setतब related_nameहोता है जब वह फ़ील्ड पर सेट नहीं होता है।
मोनिका

99

Django के आधुनिक संस्करणों (Django 1.7 में परीक्षण) में यह कैसे करें:

from django.contrib.auth.models import Group
group = Group.objects.get(name='groupname')
user.groups.add(group)

1
आप भी कर सकते हैं Group.objects.get_by_natural_key('groupname'), लेकिन यह इसे छोटा नहीं करता है: D
CpILL

2
@enchance आपको जहाँ कहीं भी ऐसा करने की आवश्यकता है। संभवतः समूह असाइनमेंट करने वाले दृश्य के लिए कोड के भीतर।
coredumperror
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.