【问题标题】:Django: get profiles having auth.Group as foreign keyDjango:获取具有 auth.Group 作为外键的配置文件
【发布时间】:2015-04-10 00:58:11
【问题描述】:

我有一个使用auth.models.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 %}

这里我已经提到了我的问题的所有支持信息,如果有任何解决方案,请告诉我。

【问题讨论】:

    标签: django django-templates django-authentication django-users


    【解决方案1】:

    要访问GroupDashboards 列表,请使用group.dashboard_set 查询集:

    {% 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 %}
    

    此查询集称为“backward relationship”。

    【讨论】:

      【解决方案2】:

      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>
      	<li>{{ Dashboard.d_name }}-{{ Dashboard.owner }}-{{Dashboard.d_description}}</li> </ol>
      {% endfor %}
      
      
      {% endblock %}

      这很好用,整洁,,,,

      【讨论】:

        猜你喜欢
        • 2015-04-06
        • 2020-04-14
        • 2018-02-07
        • 2021-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-07
        相关资源
        最近更新 更多