热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:访问Django中间模型组中的字段

篇首语:本文由编程笔记#小编为大家整理,主要介绍了访问Django中间模型组中的字段相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了访问Django中间模型组中的字段相关的知识,希望对你有一定的参考价值。



我正在创建一个包含Person和Membership的Group模型,所有这些都在Django docs中描述。

class Person(models.Model):
name = models.CharField(max_length=128)
def __str__(self):
return self.name
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through='Membership')
def __str__(self):
return self.name
class Membership(models.Model):
person = models.ForeignKey(Person)
leader = models.BooleanField(default=False)
group = models.ForeignKey(Group)

我只是在视图中完成所有这些,因为我想在我的网络应用程序中将此“创建组”作为一个功能。

views.朋友:

@login_required
def groups(request):
user = request.user
if request.method == "POST":
form = GroupForm(request.POST)
if form.is_valid():
formm = form.save(commit=False)
g = Group.objects.create(name = formm.name)
p = Person.objects.create(name=request.user)
m = Membership.objects.create(person=p, group=g, leader=True)
gr = Group.objects.all()
per = Person.objects.all()
mem = Membership.objects.all()
cOntext= {
'gr': gr,
'per':per,
'mem':mem,
'form': form,
}
return render(request, 'groups.html', context )
else:
gr = Group.objects.all()
per = Person.objects.all()
mem = Membership.objects.all()
form = GroupForm()
cOntext= {
'gr': gr,
'per':per,
'mem':mem,
'form': form,
}
return render(request, 'groups.html', context)

groups.html:

{% block profile %}


Create a new group here:



{% csrf_token %}
{{ form.as_p }}



{% for m in mem %}



Name of group: {{ m.group }}


Member: {{ m.person }}





{% endfor %}
{% endblock %}

问题是我想要使用的时候

Membership.objects.filter(person=request.user)

并得到错误:

ValueError at /groups/
Cannot query "damian": Must be "Person" instance.

其中达米安是request.user的名字

我只想过滤这个以在模板中显示只选择的成员资格,组等...

有人知道怎么修这个东西吗?


答案

这样做,

Membership.objects.filter(person__name=request.user)

要么

p = Person.objects.get(name=request.user)
Membership.objects.filter(person=p)

您必须在Person过滤器查询中将person类实例传递给Membership参数。



推荐阅读
  • 在Django中提交表单时遇到值错误问题如何解决?
    在Django项目中,当用户提交包含多个选择目标的表单时,可能会遇到值错误问题。本文将探讨如何通过优化表单处理逻辑和验证机制来有效解决这一问题,确保表单数据的准确性和完整性。 ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
  • 转自:http:blog.sina.com.cnsblog_67419c420100vmkt.html 1.为什么要使用blocks将一个blocks作为函数或者方法的参数传递,可 ... [详细]
  • MVC框架下使用DataGrid实现时间筛选与枚举填充
    本文介绍如何在ASP.NET MVC项目中利用DataGrid组件增强搜索功能,具体包括使用jQuery UI的DatePicker插件添加时间筛选条件,并通过枚举数据填充下拉列表。 ... [详细]
  • 字符、字符串和文本的处理之Char类型
    .NetFramework中处理字符和字符串的主要有以下这么几个类:(1)、System.Char类一基础字符串处理类(2)、System.String类一处理不可变的字符串(一经 ... [详细]
  • Navicat Premium中MySQL用户管理:创建新用户及高级设置
    本文作为Navicat Premium用户管理系列的第二部分,主要介绍如何创建新的MySQL用户,包括设置基本账户信息、密码策略、账户限制以及SSL配置等。 ... [详细]
  • 页面预渲染适用于主要包含静态内容的页面。对于依赖大量API调用的动态页面,建议采用SSR(服务器端渲染),如Nuxt等框架。更多优化策略可参见:https://github.com/HaoChuan9421/vue-cli3-optimization ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • Cadence SPB 16.5 安装指南与注意事项
    本文提供了详细的 Cadence SPB 16.5 安装步骤,包括环境配置、安装过程中的关键步骤以及常见问题的解决方案。适合初次安装或遇到问题的技术人员参考。 ... [详细]
  • HTML download 属性详解及应用
    本文探讨了 HTML 中 download 属性的应用场景及其在不同浏览器中的实现方式,通过示例代码展示了如何利用 JavaScript 实现文件下载功能。 ... [详细]
  • 本文介绍了多种Eclipse插件,包括XML Schema Infoset Model (XSD)、Graphical Editing Framework (GEF)、Eclipse Modeling Framework (EMF)等,涵盖了从Web开发到图形界面编辑的多个方面。 ... [详细]
  • 本文探讨了 Boost 库中的 Program Options 组件,这是一个强大的工具,用于解析命令行参数和配置文件。文章介绍了如何正确设置和使用该组件,包括处理复杂选项和负数值的方法。 ... [详细]
  • 本文介绍了在解决Hive表中复杂数据结构平铺化问题后,如何通过创建视图来准确计算广告日志的曝光PV,特别是针对用户对应多个标签的情况。同时,详细探讨了UDF的使用方法及其在实际项目中的应用。 ... [详细]
  • iOS如何实现手势
    这篇文章主要为大家展示了“iOS如何实现手势”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“iOS ... [详细]
author-avatar
淘客淘宝客
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有