2015-02-06 2 views
0

Я хочу отображать информационные панели, которые находятся под группой зарегистрированных пользователей, и я уже зарегистрировал информацию о пользователе и группу, имя этого пользователя до сих пор мой views.py являетсяDjango: профили под auth.Group, где auth.Group используется как внешний ключ в модели приложения

def custom_login(request): 
 
    if request.user.is_authenticated(): 
 
     return HttpResponseRedirect('dashboards')   
 
    return login(request, 'login.html', authentication_form=LoginForm) 
 

 
def custom_logout(request): 
 
    return logout(request, next_page='/') 
 

 
def user(request): 
 
    context = {'user': request.user, 'groups': request.user.groups.all()} 
 
    return render_to_response('registration/dashboards.html', context, context_instance=RequestContext(request))

dashboard.html, как

{% extends "base.html" %} 
 
{% block content %} 
 
{% if user.is_authenticated %} 
 
    <p>Welcome, {{ request.user.get_username }}. <br/> 
 
    {% else %} 
 
    <p>Welcome, new user. Please log in.</p> 
 
{% endif %} 
 
<ul> 
 
{% for group in groups %} 
 
    <li> 
 
     and you belongs to <strong>{{ group.name }}<strong> - 
 
       {% endfor %} 
 
     </li> 
 
</ul> 
 
{% endblock %}

forms.py выглядит

from django import forms 
 
from django.contrib.auth.models import User 
 
from django.forms import ModelForm 
 
#from mhawk.models import Dashboard 
 

 

 
class LoginForm(forms.Form): 
 
     username  = forms.CharField(label=(u'User Name')) 
 
     password  = forms.CharField(label=(u'Password'), widget=forms.PasswordInput(render_value=False)) 
 
\t \t

и мой models.py является

from django.db import models 
 
from django.contrib.auth.models import Group, User 
 
from django.utils import timezone 
 
import datetime 
 

 
class Dashboard(models.Model): 
 
    d_name = models.CharField(max_length=200) 
 
    d_description = models.CharField(max_length=200) 
 
    d_url = models.CharField(max_length=200) 
 
    d_status = models.CharField(max_length=200) 
 
    owner = models.ForeignKey(Group) 
 
    
 
    def __str__(self):return self.d_name

и urls.py является

from django.conf.urls import patterns, include, url 
 
from django.contrib import admin 
 
from drinker import views, models 
 
from django.contrib.auth.models import User 
 

 
urlpatterns = patterns('', 
 
    
 
    url(r'^admin/', include(admin.site.urls)), 
 
    url(r'^login/$', 'django.contrib.auth.views.login',), 
 
    url(r'^logout/$', 'django.contrib.auth.views.logout'), 
 
    url(r'^dashboards/$', 'mhawk.views.user'), 
 
)

, как я могу отобразить вошедший в имени пользователя, таким же образом, я хочу, чтобы отобразить его группу и приборные панели, которые в рамках этой группы, Спасибо. Ждем помощи.

ответ

0

Можете ли вы не просто делать что-то вроде этого:

def user(request): 
    user_groups = request.user.groups.all() 
    if request.user.is_anonymous(): 
     user_groups = [] 
    user_dashboards = Dashboard.objects.filter(owner__in=user_groups) 

    context = { 
     'user': request.user, 
     'user_groups': user_groups, 
     'user_dashboards': user_dashboards, 
    } 

    [...] 

В шаблоне, вам нужно сделать что-то вроде этого ...

{% extends "base.html" %} 
{% block content %} 
    {% if user.is_authenticated %} 
     <p>Welcome, {{ request.user.get_username }}. <br/> 
    {% else %} 
     <p>Welcome, new user. Please log in.</p> 
    {% endif %} 

    <p></p> 
    <p>And you belongs to: </p> 
    <ul> 
     {% for group in user_groups %} 
      <li> 
       <strong>{{ group.name }}<strong> - 
      </li> 
     {% endfor %} 
    </ul> 
{% endblock %} 

Узнайте больше о Джанго шаблонам:

+0

hmmm его не работает –

+0

Вы можете видеть мои обновления Благодарю вас. –

+0

, если я использую ваши взгляды, как я могу получить информационные панели в своем html –