首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Django url中传递两个模型的pk?- <int:pk> | id

在Django中,可以通过在URL中传递两个模型的主键(pk)来实现。一种常见的方法是使用<int:pk><id>来表示整数类型的主键。

具体步骤如下:

  1. urls.py文件中定义URL模式。例如,假设有两个模型分别为Model1Model2,可以使用以下方式传递它们的主键:from django.urls import path from . import views urlpatterns = [ path('model1/<int:pk>/model2/<int:id>/', views.my_view, name='my_view'), ]在上述代码中,<int:pk>表示传递Model1的主键,<int:id>表示传递Model2的主键。
  2. views.py文件中定义视图函数。在视图函数中,可以通过URL参数获取传递的主键,并进行相应的处理。from django.shortcuts import render, get_object_or_404 from .models import Model1, Model2 def my_view(request, pk,): model1 = get_object_or_404(Model1, pk=pk) model2 = get_object_or_404(Model2, pk=id) # 进行相关处理 return render(request, 'my_template.html', {'model1': model1, 'model2': model2})在上述代码中,pkid参数分别对应URL中传递的主键值。通过get_object_or_404函数可以根据主键获取相应的模型实例。

这样,当访问model1/1/model2/2/这样的URL时,Django将调用my_view视图函数,并将pk=1id=2作为参数传递给该函数。在视图函数中,可以根据这些主键值获取相应的模型实例,并进行后续处理。

推荐的腾讯云相关产品:腾讯云服务器(CVM)和腾讯云数据库(TencentDB)。您可以通过以下链接了解更多信息:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

测试开发进阶(二十四)

GET具体内容 校验前端传递pk(项目ID)值,类型是否正确(正整数),在数据库是否存在等「先省略」 获取指定pk项目 将模型类转化为字典,然后返回 # projects/views.py class...PUT具体内容 校验前端传递pk(项目ID)值,类型是否正确(正整数),在数据库是否存在等「先省略」 获取指定pk项目 从前端获取json格式数据,转化为Python类型 为了严谨性,这里需要做各种复杂校验...DELETE 校验前端传递pk(项目ID)值,类型是否正确(正整数),在数据库是否存在等「先省略」 获取指定pk项目 删除 def delete(self, request, pk):...原始设计小结 创建接口任务 校验用户数据 将请求数据(json格式)转换为模型类对象 反序列化 将其他格式(json,xml等)转换为程序数据类型 将json格式字符串转换为Django模型类对象...操作数据库 将模型类对象转换为响应数据(json格式) 序列化 将程序数据类型转换为其他格式(json,xml等) 例如将Django模型类对象转换为json字符串 数据增删改查流程 增

1K50

第 08 篇:开发博客文章详情页

这条规则含义是,以 posts/ 开头,后跟一个整数,并且以 / 符号结尾, posts/1/、 posts/255/ 等都是符合规则,此外这里 是 django 路由匹配规则特殊写法...比如当用户访问 posts/255/ 时(注意 django 并不关心域名,而只关心去掉域名后相对 URL), 匹配 255,那么这个 255 会在调用视图函数 detail 时被传递进去...}) 注意到 URL 配置 path('posts//', views.detail, name='detail') ,我们设定 name='detail' 在这里派上了用场。...URL,我们这里 detail 对应规则就是 posts// int 部分会被后面传入参数 pk 替换,所以,如果 Post id(或者 pk,这里 pkid 是等价)...', context={'post': post}) 视图函数很简单,它根据我们从 URL 捕获文章 id(也就是 pk,这里 pkid 是等价)获取数据库中文章 id 为该值记录,然后传递给模板

43030

第 13 篇:分类、归档和标签页

Python 调用属性方式通常是 created_time.year,但是由于这里作为方法参数列表,所以 django 要求我们把点替换成了两个下划线,即 created_time__year。...URL 和 detail 视图函数对应 URL 是类似的,这在之前我们讲过,django 会从用户访问 URL 自动提取 URL 路径参数转换器 规则捕获值,然后传递给其对应视图函数...这里 {% url %} 这个模板标签作用是解析视图函数 blog:archive 对应 URL 模式,并把 URL 模式年和月替换成 date.year,date.month 值。...pk 值(也就是被访问分类 id 值)从数据库获取到这个分类。...='archive'), path('categories//', views.category, name='category'), ] 这个分类页面对应 URL 模式和文章详情页面对应

79230

Django入门

http://127.0.0.1:8000/temp/123/,能看到: 图-1 int是转换器类型,表明匹配这部分是整型。...5.URL名称命名空间 上文path('temp//', views.temp, name='index'),,该URL模式名称为index,如果我们在别的应用也需要使用...官网详情:URL dispatcher 模型 (Model) 模型包含存储数据基本字段和行为,通常,一个模型对应一个数据库表。 1.创建Model 在创建模型之前,先要想好数据库表结构。...添加数据 当创建了数据模型之后,Django会自动给到一个数据库抽象API,用于进行数据增删改查。一个模型类表示一个数据库表,一个模型类实例代表一个数据库表记录。...path('temp//', views.temp, name='index'), ] 复制代码 views.temp是url匹配上之后要调用函数。

1.5K00

如何把Tomcat日志实时输出到Web页面上

哈哈哈哈,写不好前端运维不是好DBA。 刚开始拿到这个需求,咋觉得很难。因为在服务器上我们看一个日志,经常会tail -f 看着刷屏感觉倍爽。如何在web页面上实现tailf效果呢?...想到解决方案之后,实现过程就比较简单了。我开发环境是基于PythonDjango框架来做,现在就展示这个功能实现过程。...Django部分 点击查看日志链接之后会调到views里ajxGetLog方法,该方法需要两个参数,项目id和主机id,这两个参数主要是用来确定日志文件位置。该方法返回行号。...,传递三个参数项目id,主机id,和行号,后台将会返回对应行号日志内容。...shell脚本,上shell 看到shell 是不是很亲切,现在知道传递两个参数作用了吧,host 和 项目id就是为了确定日志文件路径,如果命令行参数没有传递行号就返回行号,如果有行号,就返回该行内容

1.5K10

如何使用Django构建现代Web应用程序来管理客户信息并在Ubuntu 18.04上进行反应

您可以按照如何在安装PPA时在Ubuntu 18.04上安装Node.js说明安装它们。...我们应用程序将为Django和React使用两个不同开发服务器。它们将在不同端口上运行,并将作为两个独立域运行。...Django每个模型都是一个扩展django.db.models.ModelPython类。 该Customer模型将具有以下数据库字段: first_name - 客户第一个名字。...在API消耗方面,在DjangoREST框架一个串行器允许将复杂模型实例和查询集转换成JSON格式。...我们还将在项目的urls.py文件为相应端点(即api/customers和api/customers/)创建URL 。 让我们从为Customer模型创建序列化程序类开始。

13.9K83

基于django视频点播网站开发-step5-详情页功能

视频详情显示 因为在上一讲,我们已经建立了video模型,所以不必再新建模型,我们就在video模型基础上进行扩展。...(), name='detail')即表示详情信息,注意每条视频都是有自己主键,所以设置路径匹配为detail//,其中表示主键,这是django中表示主键一种方法...怎么显示详情呢,聪明django为我们提供了DetailView。urls.py设置视图类是VideoDetailView,我们让VideoDetailView继承DetailView即可。...这里我们配置model为Video模型,模板为video/detail.html,其它工作都不用管,全都交给django去干,oh,这棒极了。...实现起来非常容易,我们知道详情页实现用是VideoDetailView,我们可以在get_context_data()把推荐内容传递给前端模板。

2.1K30

Django序列化器简单使用

反序列化,完成数据校验功能 为方便理解后面序列化器字段,我们先在创建APPmodels.py 建立一个数据库模型类。...5ce0e9a5-5ffa-654b-cee0-1238041fb31a" 2) 'hex' "5ce0e9a55ffa654bcee01238041fb31a" 3)'int' - : "123456789012312313134124512351145145114...P\d+)', views.BookView.as_view()), ] 即当所有请求url 为127.0.0.1:8080/books/1 形式时,会匹配到视图类BookView ,并将pk...(id=pk).first() # 得到一个序列化类对象 # book_ser=BookSerializer(book,request.data) # 按照位置传递参数...5、模型类序列化器 如果我们想要使用序列化器对应Django模型类,DRF为我们提供了ModelSerializer模型类序列化器来帮助我们快速创建一个Serializer类。

1.5K40

浅谈django不使用restframework自定义接口与使用区别

1.定义我们需要模型类,并且在对应模型定义对应将对象转化为字典函数 from django.db import models class Questionnaire(models.Model...__(self): return self.content 将你需要转化为字典字段添加进函数,当指定外键时,”related_name”为指定关系名,用于反向查找,比如通过问卷查找问题,但是问卷模型没有...获取单个问卷对象通过传递id查看到指定问卷对象,再通过自定义函数将对象转化为字典数据,最后返回单个问卷对象json数据。...数据,通过post方法从前端获取到传递过来json数据,将其转化为对象并保存。...,并不能返回它所关联外键属性字段,要想获取其他关联模型数据就得定义另外类视图,那么对应url也需要配置。

76730

Django搭建blog网站(一)

这是 Django 规定语法。用 {{ }} 包起来变量叫做模板变量。Django 在渲染这个模板时候会根据我们传递给模板变量替换掉这些变量。最终在模板显示将会是我们传递值。...同样我们需要对 Django 做一些必要配置,才能让 Django 知道如何在开发服务器引入这些 CSS 和 JavaScript 文件,这样才能让博客页面的 CSS 样式生效。...例如这里 {{ post.pk }}(pk 是 primary key 缩写,即 post 对应于数据库记录 id 值,该属性尽管我们没有显示定义,但是 Django 会自动为我们添加)。  ...P[0-9]+)/这个正则表达式,而正则表达式部分会被后面传入参数 pk 替换,所以,如果 Post  id(或者 pk,这里 pkid 是等价) 是 255 的话,那么 get_absolute_url...}) 视图函数很简单,它根据我们从 URL 捕获文章 id(也就是 pk,这里 pkid 是等价)获取数据库中文章 id 为该值记录,然后传递给模板。

5.6K91

Django 1.10文文档-第一个应用Part4-表单和通用视图

他们都具有类似的业务逻辑,实现类似的功能:通过从URL传递过来参数去数据库查询数据,加载一个模板,利用刚才数据渲染模板,返回这个模板。...这里使用两个通用视图:ListView和DetailView。这两个视图分别代表“显示对象列表”和“显示特定类型对象详细信息页面”抽象概念。 每个通用视图需要知道它将作用于哪个模型。...这由model 属性提供; DetailView都是从URL捕获名为"pk"主键值,因此才需要把polls/urls.pyquestion_id改成了pk以使通用视图可以找到主键值。...而对于DetailView,question变量会被自动提供,因为我们使用了Django模型(Question),Django会智能选择合适上下文变量。...快速通道 Django 1.10文文档-第一个应用Part1-请求与响应 Django 1.10文文档-第一个应用Part2-模型和管理站点 Django 1.10文文档-第一个应用

2.3K40

Django Rest Framework

handle_exception(self, exc): 抛出任何异常处理程序方法将被传递给这个方法,而返回响应实例,或者re-raises异常。...initialize_request(self, request, *args, **kwargs): 确保请求对象传递给处理程序方法是request一个实例,而不是djangoHttpRequest...lookup_field: 模型字段应该用于执行对象查找个别的模型实例 lookup_url_kwarg:URL应该用于对象查找关键字参数 分页属性: pagination_class: 用于返回一个分页列表视图分页类...’ filter_backends: 过滤queryset类列表,和在settings设置DEFAULT_FILTER_BACKENDS 一样 2)方法 基本方法: get_queryset():...,ViewSet类是一个简单类型基于类观点,没有提供任何方法处理程序.get()或. post(), 而代替提供方法比如.list()和create()。

2.3K60

快速搭建一个集成腾讯元器网站

关于元器 腾讯元器是基于混元大模型开发一站式智能体创作与分发平台。无需代码,您可快捷创建AI智能体/插件/知识库。还能将智能体一键分发到QQ,微信客服,腾讯云等渠道上,享受鹅厂丰厚流量扶持!.../' STATICFILES_DIRS = [BASE_DIR / 'static'] 创建模型 在 upload/models.py 定义一个模型来存储上传图片: python复制代码from django.db...="{% url 'image_upload' %}">Upload Another Image 配置 URL 路由 在 myproject/urls.py 文件添加新...URL 路由: from django.conf import settings from django.conf.urls.static import static from django.contrib...): image = Image.objects.get(pk=pk) info = get_img_info(image.url) return render(request,

21210

博客文章详情页

,也就是数据库 Post 记录 id 值。...P[0-9]+) 匹配 255,那么这个 255 会在调用视图函数 detail 时被传递进去,实际上视图函数调用就是这个样子:detail(request, pk=255)。...我们这里必须从 URL 里捕获文章 id,因为只有这样我们才能知道用户访问究竟是哪篇文章。...P[0-9]+)/ 这个正则表达式,而正则表达式部分会被后面传入参数 pk 替换,所以,如果 Post id(或者 pk,这里 pkid 是等价) 是 255 的话,那么 get_absolute_url...', context={'post': post}) 视图函数很简单,它根据我们从 URL 捕获文章 id(也就是 pk,这里 pkid 是等价)获取数据库中文章 id 为该值记录,然后传递给模板

1.4K70
领券