【问题标题】:Facing issue in building nested URL in Django 1.11在 Django 1.11 中构建嵌套 URL 时面临的问题
【发布时间】:2018-06-24 18:57:36
【问题描述】:

我正在尝试创建一个层次结构,在主页用户可以选择在其主页中选择位置,然后一旦他们选择位置,他们就会从该位置获得相应的经理,然后一旦他们选择了他们获得相应员工的经理。

图表->(主页)所有位置-选择特定位置->经理-选择特定经理->员工列表(与经理对齐)

网址模式:

urlpatterns = [

    url(r'^$', views.index, name='index'),
    url(r'^(?P<hierarchy_id>[0-9]+)/$', views.managerview, name='managerview'),
    url(r'(?P<associate_id>[0-9]+)/$', views.associatelist, name='associatelist'),

]

观看次数:

def index(request):
    all_sites = Hierarchy.objects.all()
    return render(request, "adash/index.html", {'all_sites': all_sites})


def managerview(request, hierarchy_id):
    all_managers = Hierarchy.objects.get(pk=hierarchy_id)
    return render(request, "adash/manager.html", {'all_managers': all_managers})


def associatelist(request, associate_id):
    all_logins = Hierarchy.objects.get(pk=associate_id)
    return render(request, "adash/associatelist.html", {'all_logins': all_logins})

经理 HTML

<a class="list-group-item list-group-item-action"><h5 class = "text-monospace">{{ all_managers.direct_manager }}</h5></a>

关联 HTML

<a class="list-group-item list-group-item-action"><h5 class = "text-monospace">{{ all_logins.login }}</h5></a>

目前可以单击位置并将其定向到与该站点关联的相应经理,但如何继续下一步,即单击经理并显示关联列表。

下面是我的模型:

class Hierarchy(models.Model):
    site = models.CharField(max_length=250)
    direct_manager = models.CharField(max_length=250)
    login = models.CharField(max_length=250)

【问题讨论】:

    标签: python django


    【解决方案1】:

    您的direct_manager 字段必须是关系,而不是文本字段。这是一种递归关系,其中 Hierarchy 的一个实例指向另一个作为其管理器的实例。所以:

    direct_manager = models.ForeignKey('self', related_name='direct_reports')
    

    现在,给定一个 Hierarchy 实例,它是一个经理,您可以通过反向关系获取所有员工:

    associates = my_manager.direct_reports.all()
    

    【讨论】:

      猜你喜欢
      • 2014-05-07
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多