首页
学习
活动
专区
工具
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字符串 数据增删改查流程 增

1.1K50

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

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

45530
  • 第 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/int:pk>/', views.category, name='category'), ] 这个分类页面对应的 URL 模式和文章详情页面对应的

    81330

    Django入门

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

    1.5K00

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

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

    1.6K10

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

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

    14K83

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

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

    2.2K30

    Django序列化器的简单使用

    反序列化,完成数据的校验功能 为方便理解后面序列化器中的字段,我们先在创建的APP中的models.py 建立一个数据库模型类。...5ce0e9a5-5ffa-654b-cee0-1238041fb31a" 2) 'hex' 如 "5ce0e9a55ffa654bcee01238041fb31a" 3)'int' - 如: "123456789012312313134124512351145145114...Ppk>\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.6K40

    Django搭建blog网站(一)

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

    5.7K91

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

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

    2.4K40

    Django Rest Framework

    handle_exception(self, exc): 抛出的任何异常处理程序方法将被传递给这个方法,而返回响应实例,或者re-raises异常。...initialize_request(self, request, *args, **kwargs): 确保请求对象传递给处理程序方法是request的一个实例,而不是django的HttpRequest...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,

    40210

    Django rest Framework入门 四 :视图

    # ViewSet 虽然ModelViewSet在配合Django的数据库模型类开发的时候非常高效,但是它并不适用于所有的场景,比如当后端没有对应数据库模型类的时候就是不能使用它了。...* **视图类代码** 这里有一个特别的处理,就是视图类中的函数名是list, create这样具体的动作,而不是在django中的put,post这样的请求方法,这和后面的url中配置有关。...在这个样例代码中,我依然使用到了Django的数据库模型类,但是其实如果把list、update这些函数内的代码换成其他的业务逻辑也是没有问题的,这样就是没有数据库模型类的使用场景。...,在url的最后多个id(主键) ''' try: bookinfo = BookInfo.objects.get(id=pk)...总结 可以看到,总的来说,ModelViewSet在有数据库模型类的情况还是比ViewSet好用很多的,但是当后端没有数据库模型类的时候,就只能使用ViewSet了,所谓我们对于这两个视图类都要有一定的掌握

    11910

    博客文章详情页

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

    1.5K70
    领券