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

如何在createview中使用detailview主键

在createview中使用detailview的主键,需要先了解createview和detailview的概念。

createview是Django框架中的一个通用视图类,用于处理创建对象的请求。它提供了一个表单页面,允许用户填写字段值并创建新的对象。

detailview也是Django框架中的一个通用视图类,用于展示一个对象的详细信息。它根据主键或任何唯一标识符查询对象,并将对象的属性展示给用户。

在createview中使用detailview的主键,可以通过以下步骤实现:

  1. 首先,在urls.py文件中配置URL路由,将createview和detailview映射到对应的URL。例如:
代码语言:txt
复制
from django.urls import path
from .views import CreateObjectView, ObjectDetailView

urlpatterns = [
    path('object/create/', CreateObjectView.as_view(), name='create_object'),
    path('object/<int:pk>/', ObjectDetailView.as_view(), name='object_detail'),
]
  1. 然后,在视图类中实现createview和detailview。例如:
代码语言:txt
复制
from django.views.generic import CreateView, DetailView
from .models import Object

class CreateObjectView(CreateView):
    model = Object
    fields = ['name', 'description']

class ObjectDetailView(DetailView):
    model = Object
    template_name = 'app/object_detail.html'
  1. 接下来,在模板文件中创建表单页面和对象详情页面。例如,在create_object.html中创建表单页面:
代码语言:txt
复制
<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Create</button>
</form>

在object_detail.html中展示对象的详细信息:

代码语言:txt
复制
<h1>{{ object.name }}</h1>
<p>{{ object.description }}</p>
  1. 最后,在视图类中使用主键来获取对象的详细信息。例如,在CreateObjectView中,在保存新对象后,重定向到对应的ObjectDetailView页面,并传递主键参数:
代码语言:txt
复制
from django.shortcuts import redirect

class CreateObjectView(CreateView):
    model = Object
    fields = ['name', 'description']

    def form_valid(self, form):
        self.object = form.save()
        return redirect('object_detail', pk=self.object.pk)

这样,当用户在createview页面创建新对象后,会被重定向到对应的detailview页面,并展示新对象的详细信息。

请注意,以上示例仅展示了如何在createview中使用detailview的主键,并没有涉及具体的腾讯云产品。根据具体的需求,您可以选择适合的腾讯云产品来支持您的应用,如云服务器、云数据库等。具体产品的选择和介绍,请参考腾讯云官方文档。

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

相关·内容

Django内置的通用类视图CBV及示例

ListView 显示对象列表 文章列表页 DetailView 显示对象详情 文章详细页 FormView 提交From 网站联系我们或emai订阅form CreateView 创建对象 创建新文章页...get_context_data(**kwargs): 返回显示对象的上下文数据,通过覆盖该方法返回额外的上下文 2.DetailView ?...get_queryset().get_object()从视图的所有参数查找pk_url_kwarg参数,如果找到了这个参数,该方法使用这个参数的值执行一个基于逐渐的查询.如果这个参数没有找到,该方法查找...slug_url_kwarg参数,使用slug_field字段执行针对slug的查询.当query_pk_and_slug为True时,get_object()将使用主键和slug执行查询....该视图用法与CreateView基本相同,仅在BaseUpdateView对get()和post()的内部实现有区别. 6.DeleteView ?

3.2K10
  • Django内置的通用类视图及实例

    get_context_data(**kwargs): 返回显示对象的上下文数据,通过覆盖该方法返回额外的上下文 2.DetailView ?...get_queryset().get_object()从视图的所有参数查找pk_url_kwarg参数,如果找到了这个参数,该方法使用这个参数的值执行一个基于逐渐的查询.如果这个参数没有找到,该方法查找...slug_url_kwarg参数,使用slug_field字段执行针对slug的查询.当query_pk_and_slug为True时,get_object()将使用主键和slug执行查询....该视图用法与CreateView基本相同,仅在BaseUpdateView对get()和post()的内部实现有区别. 6.DeleteView ?...http://127.0.0.1:8000/crud/ 即可对员工进行增加、删除、修改 tips: 1、注意模板位置 2、urls引入相应的模块 -----UpdateView和CreateView

    2.9K40

    django 1.8 官方文档翻译: 3-4-5 内建基于类的视图的API

    基础视图 View TemplateView RedirectView 通用的显示视图 DetailView ListView 通用的编辑视图 FormView CreateView UpdateView...BaseDateListView 基于类的通用视图 —— 索引 Simple generic views View TemplateView RedirectView Detail Views DetailView...List Views ListView Editing views FormView CreateView UpdateView DeleteView Date-based views ArchiveIndexView...基于类的视图在URL 模式的部署使用as_view() 类方法: urlpatterns = [ url(r'^view/$', MyView.as_view(size=42)), ] 视图参数的线程安全性...利用前面的例子,这表示对MyView的每个请求都可以使用 self.size。参数必须对应于在类已经存在的属性(hasattr 检查可以返回True)。 基础视图 VS.

    85020

    马哥金牌分享 | 十分钟学会用Django快速搭建一个blog

    但是在Django,控制器接受用户输入的部分由框架自行处理,所以Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为MTV模式。...视图(View)表现层 处理与表相关的决定: 如何在页面或其他类型文档中进行显示。 模板(Template),业务逻辑层 存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。...禁用的操作 admin.site.register: 关联model和admin 3.2 编写admin 4.djangod的视图 4.1 Django的视图 Django有很多的优秀的视图: View DetailView...ListView FormView CreateView DeleteView UpdateView 我们的blog里面暂时只用到了ListView和DetailView 4.2 使用dajngo自带的...ListView v 编写app的views.py 4.3 使用django自带的DetailView 4.4 配置app的urls.py 4.5 启用django 访问admin后台 填充相关的信息

    2.4K51

    django2.0入门教程第四节

    继上篇 django2.0入门教程第三节,介绍了django2.0的视图views和模板template, 本节介绍如何在前台进行投票。...result.png 优化url和view写法 另一种写法: 将主键id代替question_id polls/urls.py #_*_coding:utf8_*_ from django.urls...views.ResultsView.as_view(), name='results'), path('/vote/', views.vote, name='vote'), ] 使用...代替会更加灵活,代表主键 相应的视图也需要修改成另一种写法,vote方法保持原样,用于比较两种写法的不同 polls/views.py #_*_coding...入门教程不会对代码进入深入的讲解,先大致了解其作用即可,后续再逐个模块进行解析 源码下载 相关源码包 如果对django2.0教程感兴趣,请关注我的简书,持续更新...

    77620

    【DB笔试面试511】如何在Oracle写操作系统文件,写日志?

    题目部分 如何在Oracle写操作系统文件,写日志? 答案部分 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。...若想普通用户使用该包,则需要在SYS用户下执行“GRANT EXECUTE ON DBMS_LOCK TO USER_XXX;”命令。 Oracle使用哪个包可以生成并传递数据库告警信息?...在CLIENT_INFO列存放程序的客户端信息;MODULE列存放主程序名,包的名称;ACTION列存放程序包的过程名。该包不仅提供了设置这些列值的过程,还提供了返回这些列值的过程。...如何在存储过程暂停指定时间? DBMS_LOCK包的SLEEP过程。例如:“DBMS_LOCK.SLEEP(5);”表示暂停5秒。 DBMS_OUTPUT提示缓冲区不够,怎么增加?...如何在Oracle写操作系统文件,写日志? 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。

    28.8K30

    django 1.8 官方文档翻译: 3-4-2 内建显示视图

    扩展通用视图 使用通用视图可以极大的提高开发速度,是毫无疑问的。 然而在大多数工程, 总会遇到通用视图无法满足需求的时候。...如果你将你的视图实现为通用视图的子类,你就会发现这样能够更有效地编写你想要的代码,使用你自己的基于类或功能的视图。 在一些三方的应用,有更多通用视图的示例,或者你可以自己按需编写。...DetailView通用视图提供了一个publisher对象给context,但是我们如何在模板添加附加信息呢?...然而,model参数并不是唯一能够指明视图要基于哪个对象进行操作的方法 – 你同样可以使用queryset参数来指定一个对象列表: from django.views.generic import DetailView...pk - 这个名字是DetailView用来查找主键的值的默认名称,其中主键用于过滤查询集。

    1.4K40

    何在CDH安装和使用StreamSets

    [t1kggp7p0u.jpeg] [gthtxgcxg9.jpeg] 2.文档编写目的 ---- 本文档主要讲述如何在Cloudera Manager 管理的集群安装StreamSets和基本使用。...Field Masker提供固定和可变长度的掩码来屏蔽字段的所有数据。要显示数据的指定位置,您可以使用自定义掩码。...要显示数据的一组位置,可以使用正则表达式掩码来定义数据的结构,然后显示一个或多个组。...对于更一般的管道监控信息,您可以使用度量标准规则和警报。 Jython Evaluator的脚本为没有信用卡号码的信用卡交易创建错误记录。...我们将使用带有record:value()函数的表达式来标识信用卡号码字段/credit_card为空的情况。该函数返回指定字段的数据。

    35.9K113

    diango之基于内置视图CBS编程

    "/login/" TemplateView 显示Django HTML template 一般网站中使用模板显示的页 ListView 显示对象列表 文章列表页 DetailView 显示对象详情 文章详细页...FormView 提交From 网站联系我们或emai订阅form CreateView 创建对象 创建新文章页 UpdateView 更新对象 修改文章页 DeleteView 删除对象 删除文章页...View基本元素 1 class ModelCreatView(CreateView): 2 def __init__(self, model, template_name, context_object_name...有时需要前后端异步方式加载数据,就需要使用ajax来完成,这时就可以使用mixin来解决。 使用mixin可以为class提供额外的功能,但它自身却不能单独使用的类....在Django, 我们可以使用mixin为CBVs提供更多的扩展性, 当然在类继承过程, 我们推荐以下原则: Django自身提供的View永远在最右边 mixin依次在以上view的左边 mixin

    70730
    领券