Samouczek jest całkiem przydatny. Chodziło mi o to, że spodziewałbym się zobaczyć w sekcji dokumentacji w ramach auth do programowego tworzenia grup. zamiast tego istnieje tylko słaby akapit: docs.djangoproject.com/en/1.3/topics/auth/#groups Myślę, że warto pamiętać, że modele auth to tylko zwykłe modele i mają zastosowanie standardowe odniesienia do modeli.
Francis Yaconiello
gdzie jest user_setw Django doc? Nie mogę go nigdzie znaleźć
Minh Thai
1
@MinhThai domyślną wartością pola relacji odwrotnej jest <content_type>_setsytuacja, related_namew której pole nie jest ustawione.
sox z Monicą
103
Oto jak to zrobić w nowoczesnych wersjach Django (przetestowanych w Django 1.7):
from django.contrib.auth.models import Group
group = Group.objects.get(name='groupname')
user.groups.add(group)
możesz też to zrobić Group.objects.get_by_natural_key('groupname'), ale to nie powoduje zwarcia: D
CpILL
2
@enchance Gdziekolwiek potrzebujesz. Prawdopodobnie w kodzie widoku, który wykonuje przypisania grupowe.
coredumperror
0
coredumperror ma rację, ale znalazłem jedną rzecz, którą muszę się nią podzielić
from django.contrib.auth.models import Group
# get_or_create return error due to
new_group = Group.objects.get_or_create(name = 'groupName')
print(type(new_group)) # return tuple
new_group = Group.objects.get_or_create(name = 'groupName')
user.groups.add(new_group) # new_group as tuple and it return error# get() didn't return error due to
new_group = Group.objects.get(name = 'groupName')
print(type(new_group)) # return <class 'django.contrib.auth.models.Group'>
user = User.objects.get(username = 'username')
user.groups.add(new_group) # new_group as object and user is added
Odpowiedzi:
Znajdź grupę za pomocą modelu grupy z nazwą grupy, a następnie dodaj użytkownika do 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)
źródło
user_set
w Django doc? Nie mogę go nigdzie znaleźć<content_type>_set
sytuacja,related_name
w której pole nie jest ustawione.Oto jak to zrobić w nowoczesnych wersjach Django (przetestowanych w Django 1.7):
from django.contrib.auth.models import Group group = Group.objects.get(name='groupname') user.groups.add(group)
źródło
Group.objects.get_by_natural_key('groupname')
, ale to nie powoduje zwarcia: Dcoredumperror ma rację, ale znalazłem jedną rzecz, którą muszę się nią podzielić
from django.contrib.auth.models import Group # get_or_create return error due to new_group = Group.objects.get_or_create(name = 'groupName') print(type(new_group)) # return tuple new_group = Group.objects.get_or_create(name = 'groupName') user.groups.add(new_group) # new_group as tuple and it return error # get() didn't return error due to new_group = Group.objects.get(name = 'groupName') print(type(new_group)) # return <class 'django.contrib.auth.models.Group'> user = User.objects.get(username = 'username') user.groups.add(new_group) # new_group as object and user is added
źródło