DJANGO:在模板中显示多对多的附加字段

     2023-02-24     182

关键词:

【中文标题】DJANGO:在模板中显示多对多的附加字段【英文标题】:DJANGO: Showing many-to-many additional fields in template 【发布时间】:2012-03-29 09:36:58 【问题描述】:

我有以下情况:一个项目可以属于多个部门,员工被分配到多个项目的角色。如何在模板中显示角色字段? employees.role 显示空白...

模型

class Projects(models.Model):
    name = models.CharField(max_length=20)

class Department(models.Model):
    name = models.CharField(max_length=20)

class Employees(models.Model):
    fname = models.CharField(max_length=15)

class Departmentprojects(models.Model):
    department = models.ForeignKey(Department)
    projects = models.ForeignKey(Projects)
    members = models.ManyToManyField(Employee, through='Membership')

class Membership(models.Model):
    departmentprojects = models.ForeignKey(Departmentprojects)
    employee = models.ForeignKey(Employee)
    role = models.CharField(max_length=20) #i want to show this field in a template

查看

def department_detail(request, company_id):
department = get_object_or_404(Department, pk=department_id)
return render_to_response('test/detail.html', 'department': department)

模板

<h1> department.name </h1>

% for projects in department.departmentprojects_set.all %
    <h2> projects.projects </h2>
        <ul>
            % for employees in projects.members.all %
                <li> employee  |  employee.role </li>
            % endfor %
        </ul>
% endfor %

【问题讨论】:

你在模板的一个地方有employees,在另一个地方有employee 【参考方案1】:

迭代“通过”模型而不是目标模型:

% for membership in projects.membership_set.all %
<li>
    membership.employee  |  membership.role 
</li>
% endfor %

【讨论】:

我通过使用 % for employees in projects.membership_set.all % 而不是使用 % for employees in projects.members.all % 解决了这个问题。不知道有什么区别,但它有效!

在 django 模板中查询多对多字段

】在django模板中查询多对多字段【英文标题】:QueryingManytomanyfieldsindjangotemplate【发布时间】:2011-03-2515:03:29【问题描述】:这可能不相关,只是想问一下,如果一个对象从视图传递到模板,并且在模板中我将能够查询多对多字... 查看详情

Django模板过滤2个多对多字段

】Django模板过滤2个多对多字段【英文标题】:Djangotemplatefilters2ManytoManyfields【发布时间】:2014-05-2504:33:27【问题描述】:我正在用Django编写一个应用程序,该应用程序获取一个项目中的所有运动员,将它们分类(轻量级、重量级... 查看详情

如何在引导选项卡块中按 django 模板中的多对多字段过滤对象

】如何在引导选项卡块中按django模板中的多对多字段过滤对象【英文标题】:Howtofilterobjectsbymanytomanyfieldindjangotemplatesinblockofbootstraptabs【发布时间】:2014-05-2018:27:48【问题描述】:我的模型如下所示:classCategory(MPTTModel):classMPTTMet... 查看详情

DJANGO:与附加字段的多对多关系

】DJANGO:与附加字段的多对多关系【英文标题】:DJANGO:many-to-manyrelationshipwithadditionalfields【发布时间】:2012-03-2511:06:17【问题描述】:编程新手,这对我来说很困惑...我有2个模型。部门和跨职能项目。两个模型之间的关系创建... 查看详情

Django 多对多字段过滤器列表

】Django多对多字段过滤器列表【英文标题】:Djangomanytomanyfieldfilterlist【发布时间】:2016-12-1316:21:16【问题描述】:我正在打印与某些过滤器匹配的啤酒列表,以及每个都可以点击的酒吧。这些是多对多关系。我需要过滤此条形... 查看详情

Django 多对多模板问题

】Django多对多模板问题【英文标题】:DjangoManyToManyTemplateQuestions【发布时间】:2010-11-1701:12:04【问题描述】:大家早上好,我从事PHP程序员已经有一段时间了,但我觉得需要更多地朝着Python方向发展,还有什么比玩Django更好。在... 查看详情

我们如何在 django 管理搜索字段中搜索多对多字段

】我们如何在django管理搜索字段中搜索多对多字段【英文标题】:howcanwesearchmanytomanyfieldindjangoadminsearchfield【发布时间】:2019-01-2615:26:34【问题描述】:在这里,我在Django模型中定义了多对多字段,我想在我的Django管理搜索字段... 查看详情

在 Django 中显示多对多关系

】在Django中显示多对多关系【英文标题】:Displayingamany-to-manyrelationshipinDjango【发布时间】:2021-11-1302:03:38【问题描述】:背景:我有以下用于访客管理应用程序的模型。每个站点可以有多个访问者,每个访问者可以访问多个站... 查看详情

如何使用 Django 中的成员资格访问多对多的属性

】如何使用Django中的成员资格访问多对多的属性【英文标题】:Howdoiaccessthepropertiesofamany-to-manywithMembershipinDjango【发布时间】:2016-07-0918:10:28【问题描述】:我怎样才能只设置我的会员资格,而不是全部在for-loop中?模板.html:%fo... 查看详情

如何在 Django 中向多对多关系中添加字段?

】如何在Django中向多对多关系中添加字段?【英文标题】:HowcanIaddafieldtoamany-to-manyrelationshipinDjango?【发布时间】:2021-04-0211:16:01【问题描述】:这是一个关于如何在Django中为多对多关系添加字段的问题。我有一个模型LandingPage和... 查看详情

Sequelize 查询在多对多关系中显示附加数据

】Sequelize查询在多对多关系中显示附加数据【英文标题】:SequelizequeryshowsadditionaldatainManytoManyrelationship【发布时间】:2021-05-1820:01:18【问题描述】:我有这个设置,用户和主题之间的多对多关系:User.belongsToMany(Topic,through:"UserTopi... 查看详情

在 django 的多对多关系中添加额外的字段

】在django的多对多关系中添加额外的字段【英文标题】:Addextrafieldinmanytomanyrelationshipindjango【发布时间】:2020-06-2006:32:21【问题描述】:我正在尝试创建我的应用程序的模型,但在布局中感到困惑classProduct(models.Model):name=models.Cha... 查看详情

Django / Python - 在对象创建中使用多对多字段

】Django/Python-在对象创建中使用多对多字段【英文标题】:Django/Python-UsingManyToManyfieldInObjectCreation【发布时间】:2018-08-0919:57:33【问题描述】:有没有办法使用ManyToManyField在模型中创建对象?以下是模型:classBooking(models.Model):tour_... 查看详情

Django - 查询列表中的任何项目在多对多字段中的任何对象

】Django-查询列表中的任何项目在多对多字段中的任何对象【英文标题】:Django-QueryforanyobjectswhereanyitemfromlistisinManytoManyfield【发布时间】:2017-04-1215:02:28【问题描述】:我在Django中有一个模型,它有一个名为“accepted_insurance”的... 查看详情

在多对多的情况下在 Django 中保存表单

】在多对多的情况下在Django中保存表单【英文标题】:SavingformsinDjangoincaseofmany-to-many【发布时间】:2016-03-2621:28:35【问题描述】:我已阅读与此主题相关的所有讨论,但仍然无法弄清楚问题所在。tempTaskForm=newTaskForm.save(commit=False... 查看详情

Django基于多对多字段的第一个对象进行排序

】Django基于多对多字段的第一个对象进行排序【英文标题】:Djangosortingbasedonfirstobjectofmanytomanyfield【发布时间】:2019-04-1015:39:03【问题描述】:在这里,我想根据汽车字段的第一个对象对用户进行排序。对于外键,我正在这样做... 查看详情

如何以 django 形式过滤多对多字段

】如何以django形式过滤多对多字段【英文标题】:Howtofiltermanytomanyfieldindjangoform【发布时间】:2021-07-1010:35:41【问题描述】:我有一个模型选举,它有一个与候选模型有多对多关系的“候选人”字段和一个与区域模型有一对多关... 查看详情

在 Django 中自动填充一组通用的多对多字段?

】在Django中自动填充一组通用的多对多字段?【英文标题】:AutopopulateasetofgenericmanytomanyfieldsinDjango?【发布时间】:2015-04-1019:29:29【问题描述】:我正在尝试将this答案和这个one结合起来,并带有一点for循环。在创建角色时,我想... 查看详情