2015-07-09 5 views
0

Я хочу, чтобы получить группу пользователей в шаблоне, но группы пользователей не могут показать,Джанго получить группу пользователей в шаблоне

views.py

def Admin_add(request): 
    if request.method == "POST": 
     form = AdminSetup(request.POST, request.FILES) 
     if form.is_valid(): 
      post = form.save(commit=False) 
      user.groups.add(Group.objects.all) 
      post.save() 
      return redirect('admin_add.html', pk=post.pk) 
    else: 
     form = AdminSetup() 
    return render(request,'admin_add.html', {'form': form}, context_instance= RequestContext(request)) 

forms.py

class AdminSetup(forms.ModelForm): 
    class Meta: 
     model = Person, Operator, Owner, Contraktor, user.groups 
     fields = ['username','password','email', 'group.name'] 

admin_add.html

<div class="form-group"> 
    <label>User Group</label> 
     <select class="form-control"> 
      {% for group in user.groups.all %} 
       <option name="{{ group.name }}" value="{{ group.name }}">{{ group.name }}</option> 
      {% endfor %} 
     </select> 
</div> 

Помогите решить эту проблему?

+0

Есть у уверены, что этот пользователь в группе? – Mithril

ответ

1

Возможно, вы хотите добавить группу к пользователю. Если это так, то вы можете попробовать ниже код

views.py
def Admin_add(request): 
    if request.method == "POST": 
     form = AdminSetup(request.POST, request.FILES) 
     if form.is_valid(): 
      post = form.save(commit=False) 
      group_name = request.POST.get('group_name') 
      g = Group.objects.get(name=group_name) 
      g.user_set.add(user) 
      post.save() 
      return redirect('admin_add.html', pk=post.pk) 
    else: 
     form = AdminSetup() 
     groups = Group.objects.all() 
    return render(request,'admin_add.html', {'form': form, 'groups': groups}, context_instance= RequestContext(request)) 

admin_add.html
<div class="form-group"> 
    <label>User Group</label> 
     <select class="form-control"> 
      {% for group in groups %} 
       <option name="group_name" value="{{ group.name }}">{{ group.name }}</option> 
      {% endfor %} 
     </select> 
</div> 
+0

спасибо за ответ, но все равно не работает. в моем случае я уже ввел 3 группы в админ. и я хочу показать, что в моем шаблоне, но его ничего не показывают. как? – User0511

+0

@ Gergő Leonidas Я никогда не определял мета как 'класс Meta: model = Person, Operator, Owner, Contraktor, user.groups', я думаю, проблема' user.groups' здесь. Поэтому я напрямую получаю «группы» через модель группы, а затем передаю «группы» в шаблон. Я думаю, что это самый правильный способ перечислить группы. – Mithril

+0

да, вы правы. большое спасибо. – User0511

Смежные вопросы