1

У меня есть модель, которая использует auth.models.Group как чужеродный ключ под названием Dashboard:Джанго: получить профили, имеющих auth.Group в качестве внешнего ключа

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 

views.py мой является:

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': user, 'groups': request.user.groups.all()} 
    return render_to_response('registration/dashboards.html', context, 
           context_instance=RequestContext(request)) 

и здесь, используя эту dashboards.html Я хочу отобразить информационные панели с помощью Group_name, которое я получу в результате group.name:

{% 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> 
     <strong>{{ group.name }}<strong> - 

      {{ dashboards.d_name }}{% if not forloop.last %},{% endif %} 

    </li> 
{% endfor %} 
</ul> 



{% endblock %} 

здесь Я упомянул всю вспомогательную информацию по моей проблеме, пожалуйста, дайте мне знать, если есть какое-либо решение.

ответ

0

Чтобы получить доступ к списку Dashboard с для Group использования в group.dashboard_set QuerySet:

{% for group in groups %} 
    <li> 
     <strong>{{ group.name }}</strong> - 
     {% for dashboard in group.dashboard_set.all %} 
      {{ dashboard.d_name }}{% if not forloop.last %},{% endif %} 
     {% endfor %} 
    </li> 
{% endfor %} 

Это QuerySet называется "backward relationship".

0

views.py

def user(request): 
 
    user= request.user 
 
    groups = request.user.groups.all() 
 
    dashboards = Dashboard.objects.filter(owner=groups) 
 

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

и dashboards.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> 
 
     <strong>you belongs to::{{ group.name }}</strong> </li> 
 
{% endfor %} 
 
</ul> 
 
<strong>#Dashboards available are::</strong> 
 
{% for Dashboard in dashboards %} 
 
    <ol> 
 
\t <li>{{ Dashboard.d_name }}-{{ Dashboard.owner }}-{{Dashboard.d_description}}</li> </ol> 
 
{% endfor %} 
 

 

 
{% endblock %}

это работает хорошо и аккуратно ,,,,

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