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

django管理视图继续为外键显示"(classname)item object(xxxxxxxxx)“

Django是一个开源的Python Web框架,它提供了一套强大的工具和功能,用于快速开发高效的Web应用程序。在Django中,管理视图(Admin View)是一个内置的功能,用于管理和操作数据库中的数据。当我们在管理视图中使用外键字段时,默认情况下会显示形如"(classname)item object(xxxxxxxxx)"的字符串。

这种显示方式并不直观,无法直接了解到外键字段所关联的具体对象信息。为了改善这种显示方式,我们可以通过自定义管理视图来实现。

首先,我们需要创建一个自定义的管理视图类,并继承Django内置的Admin View类。然后,我们可以通过重写__str__方法来自定义外键字段的显示方式。在__str__方法中,我们可以访问外键字段所关联的对象,并返回我们想要显示的字符串。

以下是一个示例代码:

代码语言:txt
复制
from django.contrib import admin
from .models import ClassName, Item

class ItemAdmin(admin.ModelAdmin):
    def __str__(self):
        return f"{self.classname} - {self.item_name}"  # 自定义外键字段的显示方式

admin.site.register(Item, ItemAdmin)

在上述示例中,我们创建了一个自定义的管理视图类ItemAdmin,并重写了__str__方法。在__str__方法中,我们通过访问外键字段classname所关联的对象,并返回了一个自定义的字符串,包括了classnameitem_name字段的值。

通过以上的自定义管理视图,我们可以实现外键字段的更直观显示,例如:"ClassName - ItemName"。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iot
  • 腾讯云区块链(Blockchain):https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙(Metaverse):https://cloud.tencent.com/product/metaverse

请注意,以上链接仅供参考,具体的产品选择应根据实际需求和情况进行评估和决策。

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

相关·内容

基于django的视频点播网站开发-step4-首页功能

在本讲中,我们开始首页功能的开发,在开发过程中,大家将会学习到Django中的通用视图类、分页对象paginator以及foreignKey的使用。 效果演示 [16851ab0d057a5d6?...我这样设计的目的呢,是让大家把精力放到学习django上面来,不必过度关注花哨的页面效果。 我们把首页拆解4个小的业务模块来开发,分别是:列表显示、分页功能、搜索功能、分类功能。...其中classification是一个ForeignKey字段,表示一个分类对应多个视频,一个视频对应一个分类(多对一) class Video(models.Model): STATUS_CHOICES...显示列表数据非常简单,我们使用django中内置的视图模版类ListView来显示,首先在view.py中编写IndexView类,用它来显示列表数据。..., pk=self.c)先获取当前类,然后classification.video_set获取数据。

1.3K41

Django—第三方引用

pip install django-tinymce 安装完成后,可以使用在Admin管理中,也可以自定义表单使用。...上去 1.2 自定义使用 1)在booktest/views.py中定义视图editor,用于显示编辑器。...上去 2.2 使用 按照配置,在admin管理中添加数据后,会自动数据创建索引,可以直接进行搜索,可以先创建一些测试数据。 1)在booktest/views.py中定义视图query。...搜索结果进行分页,视图向模板中传递的上下文如下: query:搜索关键字 page:当前页的page对象 paginator:分页paginator对象 视图接收的参数如下: 参数q表示搜索内容,传递到模板中的数据...in page%} {{item.object.id}}--{{item.object.gcontent|safe}} {%empty%} 啥也没找到</li

1.1K10

Django 3.1 官网学习路线

字段还可以有各种可选参数;在本例中,我们将投票的默认值设置 0。 最后,请注意使用定义了关系。这告诉 Django 每个选择都与一个问题相关。...按照惯例,Django 会将"_id"附加到外字段名。(是的,你也可以重写这个。) 关系是通过约束来显式的。...每种类型的字段都知道如何在 Django 管理显示自己。 每个 DateTimeField 都有免费的 JavaScript 快捷。...保存并继续编辑——保存更改并重新加载此对象的管理页面。 保存并添加另一个——保存更改并为这种类型的对象加载一个新的空白表单。 删除-显示删除确认页面。...Django 知道一个应该在管理中表示一个框。在我们的例子中,目前只存在一个问题。 还要注意在“问题”旁边的“添加另一个”链接。

8.2K10

First Django App!

本篇笔记继续跟着django官方文档创建了一个投票的应用。   它由两部分组成: 一个让人们查看和投票的公共站点。 一个让你能添加、修改和删除投票的管理站点。   ...class Choice(models.Model): # 这个表里定义了一个字段,因为一个问题可以有多个选项,每个问题对应每个问题的选项。...1、使用Django可视化管理数据   表已经创建好了,如何使用django自带的后台可视化管理数据呢,这需要我们注册一下。...在 polls 目录下创建一个新的文件urls.py # path 就是处理路径的一个模块 from django.urls import path # 引入我们自己写的视图函数,不引入的话路由器怎么知道改管理谁的视图呢...七、写点有用的视图   上面虽然写了两个视图,打通了前端,但是没有和后端交互。把我们写的视图注释掉,继续跟着官方文档写点有用的视图吧。

2.1K10

四、其它(一)ModelAdmin对象InlineModelAdmin对象重写admin模板Paginator对象Page对象示例

,并发生一个异常信息,则会运行自定义的异常处理 三、上传图片 当Django在处理文件上传的时候,文件数据被保存在request.FILES FILES中的每个<input type="file"...python manage.py createsuperuser 然后按提示填写用户名、邮箱、密码 2.在应用内admin.py文件完成注册,就可以在后台管理中维护模型的数据 from django.contrib...list_filter = ['hname', 'hcontent'] list_per_page 每页中显示多少项,默认设置100 class HeroAdmin(admin.ModelAdmin)...,发现以刚才编辑的页面效果显示 其它管理后台的模板可以按照相同的方式进行修改 五、分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator...传入一个不是整数的值时抛出 EmptyPage:当向page()提供一个有效值,但是那个页面上没有任何对象时抛出 Page对象 创建对象 Paginator对象的page()方法返回Page对象,不需要手动构造 属性 object_list

4.4K20

django 入门:通用视图类重构视图

视图及模版》 《django入门:Admin管理系统及表单》 终于到最后一部分了,这部分我们将通过 django 自带的通用视图类替换之前写的视图函数,对视图进行重构 2 利用 django 通用视图类创建类视图...1.创建视图类 import markdown from django.shortcuts import render from django.views.generic import ListView...详情界面 有时候如果我们的数据过多,同一页加载全部数据,用户的体验肯定不好,我们通过通用视图类来创建分页,这边为了方便显示,我们会设置每页加载一篇文章 3 通过 ListView 创建分页 1.指定...from django.core.paginator import Paginator item_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',...'j', 'k', 'l', 'm', 'n'] # 指定 paginator 的列表以及每页显示的列表数量 p = Paginator(item_list, 2) print(p.count) #

87620

后端框架学习-Django

模型管理器类 作用:后台管理界面添加便于操作的新功能 继承于django.contrib.admin里的ModelAdmin类 在应用的admin.py定义模型管理器类 class XXXXManager...models.PROTECT:保护删除,等同于mysql默认的RESTRICT SET_NULL:保留关联数据,设置NULL SET_DEFAULT:将设置默认值。...创建一对一数据 无的模型类,和之前相同 有的模型类: wife = Wife.objects.create(name=’王夫人’,author = author1(类属性名称绑实例...)) wife = Wife.objects.create(name=’王夫人’,author_id = 1(类属性字段绑值)) 一对一查询 正向查询:从查对象 反向查询:从对象查 调用反向属性查询到关联的一方...无的模型类,和之前相同 有的模型类: 类似上面 wife = Wife.objects.create(name=’王夫人’,author = author1(类属性名称绑实例)

9.4K40

django中ModelForm多表单组合的解决方案

output, hidden_fields = [], []          #除了默认的table方式显示,还可以或者方式显示       def as_table(self...3、通用视图 django.views.generic.ListView和django.views.generic.edit下的CreateView, UpdateView, DeleteView都是通用视图...可以看到,除去定义model或者form类,几行代码就可以搞定这么多事。我们看看CreateView的继承关系: 简单介绍下CreateView通用视图中每个父类的作用。...True时调用该方法       def form_valid(self, form):           #首先我们要获取到PrimeContractForm表单对应的模型,此时是不能save的,因为...里得到的表单           context = self.get_context_data()           #按照四条数据库记录的顺序依次的创建(调用save方法)、主键赋到下一条记录的

3.4K20

Django——ContentType(与多个表建立关系)及ContentType-signals的使用

也就是说,今后,我们如果自己定义model如果有关联到這个ContentType上,我们就能找到对应的model名称。...对于新鲜事这个功能来说就是使用GenericRelation来产生一个特殊的,它不像models.ForeignKey那样,必须指定一个Model来作为它指向的对象。...怎么从这张操作记录表中得到相应操作的model呢,这就得用到fields.GenericForeignKey,它是一个特殊的,可以指向任何Model的实例,在这里就可以通过这个字段来指向类似Post...是再给上面的表增加一个,然后重新修改数据库么?显然是不能,一旦数据库被创建了,我们几乎很少再去修改数据,如果再给其添加额外字段,无疑会带来不必要的麻烦。...总之,如果一个表与其他表有多个关系,我们可以通过ContentType来解决这种关联。

4.3K20

35.Django2.0文档

在第一次执行循环时,该变量会被置序列的项的个数减1 forloop.first 是一个布尔值,如果该迭代是第一次执行,那么它被置```` {% for item in lists %}...M:数据存取部分,由django数据库层处理,本章要讲述的内容。   V:选择显示哪些数据要显示以及怎样显示的部分,由视图和模板处理。   ...它有一个或多个作者(和作者是多对多的关联关系[many-to-many]), 只有一个出版商(和出版商是一对多的关联关系[one-to-many],也被称作          [foreign key...默认地,管理工具使用`` 下拉框`` 来展现`` `` 字段。但是,正如`` 多对多字段`` 那样,有时候你不想忍受因装载并显示这些选项而产生的大量开销。...它是一个包含字段名称的元组,它包含的字段将被展现成`` 文本框`` ,而不再是`` 下拉框`` 。

11.3K100

Django | 开发】面试招聘信息网站(用户登录注册&投在线递简历)

文章目录 一、候选人登录注册 二、创建建立模型 三、用户在线投递简历 1)创建视图与模板 2) 优化表单细节 让简历进入到面试流程 一、候选人登录注册 方法一:使用django-registraion-reduex...(不建议), 相关配置 方法二:allauth 集成(建议) ✨【Django | allauth】登录_注册_邮箱验证_密码邮箱重置✨ ✨【Django | allauth】useprofile...admin.py 注册该模型 @admin.register(Resume) class ResumeAdmin(admin.ModelAdmin): # exclude 不包括列表.隐藏字段(系统自定生成默认值其值...个人能力', {'fields': ('candidate_introduction', 'work_experience', 'project_experience'),} )) # 保存简历...= form.save(commit=False) # 添加表单中所没有的数据 self.object.applicant = self.request.user # 保存 self.object.save

88210

Django项目知识点(四)

随便新建一个Django项目,默认会自动我们创建一个/project_name/urls.py文件,并且自动包含下面的内容,这就是项目的根URL: 配置media媒体文件 settings.py #...file_url','file_name','title','desc','image_url').filter(is_delete= False) select_related() 如果我要拿这个模型通过绑定的另外一个模型...这样就可以引用模型字段值并使用它们执行数据库操作,而无需实际将它们从数据库中拉出到Python内存中 说白了就是我从数据库拿东西,但是有些需要的字段没有,要通过绑定的的app的model拿。...但是名称又是app__字段来命名,这样我要改名称,而且拿第一次的model,放在python内存中,再拿通过绑定的另一个model,又要执行第一次步骤,那个效率就不行了,干嘛我不一起拿,所以会用annotate...news_title=F('news__title')).filter(is_delete=False) 我要拿出image_url,news_id,和news_title,news_title来源banner模型绑定

1.6K30
领券