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

如何在Django泛型listview类中使用slugfield创建链接?

在Django泛型listview类中使用slugfield创建链接的方法如下:

  1. 首先,在你的模型中定义一个slug字段,用于存储URL中的可读性良好的标识符。例如,假设你有一个名为Article的模型,你可以在该模型中添加一个slug字段:
代码语言:python
代码运行次数:0
复制
from django.db import models
from django.utils.text import slugify

class Article(models.Model):
    title = models.CharField(max_length=100)
    slug = models.SlugField(unique=True)

    def save(self, *args, **kwargs):
        self.slug = slugify(self.title)
        super().save(*args, **kwargs)
  1. 在你的urls.py文件中,将slug字段添加到URL模式中。例如,假设你有一个名为articles的应用,你可以在urls.py文件中添加以下代码:
代码语言:python
代码运行次数:0
复制
from django.urls import path
from .views import ArticleListView

urlpatterns = [
    path('articles/<slug:slug>/', ArticleListView.as_view(), name='article-detail'),
]
  1. 创建一个继承自Django的泛型listview类的视图,用于显示文章列表。在该视图中,你需要指定模型和模板名称,并重写get_queryset方法以返回文章列表。例如:
代码语言:python
代码运行次数:0
复制
from django.views.generic import ListView
from .models import Article

class ArticleListView(ListView):
    model = Article
    template_name = 'article_list.html'
    context_object_name = 'articles'

    def get_queryset(self):
        return Article.objects.all()
  1. 最后,在你的模板文件(例如article_list.html)中,你可以使用slug字段创建链接。例如:
代码语言:html
复制
{% for article in articles %}
    <a href="{% url 'article-detail' slug=article.slug %}">{{ article.title }}</a>
{% endfor %}

这样,你就可以在Django泛型listview类中使用slugfield创建链接了。当用户点击链接时,将会根据slug字段的值来匹配相应的文章详情页。

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

相关·内容

Django模型的Field Types总结

(a callable object),如果使用可调用 对象,那么每次创建此 model 的新对象时调用可调用对象。...常见 datatime 。 help_text help_text 的值可以在 admin form 里显示,不过即使不使用 admin ,也可以当 做描述文档使用。...和 OneToOneField要求第一个参数是模型的,所以需要使用verbose_name关键字参数,: poll = models.ForeignKey(Poll, verbose_name=”...18、PositiveIntegerField 正整数或0,取值范围为[0 ,2147483647] 19、PositiveSmallIntegerField 正短整数或0,类似于PositiveIntegerField...20、SlugField 只能包含字母,数字,下划线和连字符的字符串,通常被用于URLs表示。可选参数max_length=50,prepopulate_from用于指示在admin表单的可选值。

92820
  • Android ListView与RecycleView的对比使用解析

    ,定义了一组String类型的数组,之后创建ArrayAdapter适配器,注意String,是一个,后面的构造函数里的参数分别为上下文android.R.Layout.simple_list_item...我定义了两个各占一半的textview,记得根标签的高使用wrap_content 2.定义一个T,作为适配器的,(类似之前的String),里面需要一个构造方法,成员变量和get方法 ?...不知道为什么会有警告,用的public,可以正常使用,若是改为其他,另外那边调用就会出错了 3.创建一个适配器,使其继承ArrayAdapter<T (T就是第二步定义的),里面需要一个构造方法,还需要复写...使用步骤: 1.在布局文件中使用RecyclerView,定义id,宽高与空间相同 2.准备RecyclerView的子项item布局,之后要在适配器使用,这里就不在赘述 3.定义个之前在...ListView中所说的T,适配器的 3.定义一个适配器T,使其继承RecyclerView.Adapter<T.ViewHolder (ViewHolder是T的一个内部类),需要一个构造方法接收数据源

    1.7K10

    Django源码学习-3-Model-上

    到目前为止,当程序涉及到数据库相关操作时,一般都会这么操作: (1)创建数据库,设计表结构和字段; (2)使用MySQLdb来连接数据库,并编写数据访问层代码; (3)业务逻辑层去调用数据访问层,执行数据库操作...已经创建Django工程创建app时(假设app的名称为 index ),那么在 index 模块下默认会生成 models.py 文件,这个就是 Django 工程操作数据库的文件。 ?...进入 models 源码,可以发现平时使用的 API,都封装在了里面,一对一、一对多、多对多的关系。 ? ? ?...ORM模型 # -> 数据库表 # 对象 -> 表的每一行数据 # 对象.id,对象.value -> 每行的数据 #这个是用来生成数据库表的,这个必须继承models.Model ?...字段类型 一般数据库字段类型大概5种(字符串/数字/浮点/时间类型/布尔类型),但 Django为了在后台 admin 可以操作数据库,同时为了限制在 admin 对数据库的无效操作,Model

    81340

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

    现在,创建一个Django视图来处理提交的数据,在Part3已经创建了一个URLconf ,包含这一行: # polls/urls.py url(r'^(?...这里使用两个通用视图:ListView和DetailView。这两个视图分别代表“显示对象列表”和“显示特定类型对象的详细信息页面”的抽象概念。 每个通用视图需要知道它将作用于哪个模型。...默认情况下,DetailView视图使用一个称作/_detail.html的模板。...现在你可以运行开发服务器,然后试试基于视图的应用程序了。 更多关于通用视图的详细信息,请查看通用视图文档。...快速通道 Django 1.10文文档-第一个应用Part1-请求与响应 Django 1.10文文档-第一个应用Part2-模型和管理站点 Django 1.10文文档-第一个应用

    2.4K40

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

    但是在Django,控制器接受用户输入的部分由框架自行处理,所以Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为MTV模式。...视图(View)表现层 处理与表相关的决定: 如何在页面或其他类型文档中进行显示。 模板(Template),业务逻辑层 存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。...操作数据库 2.1 Django里面主要使用orm来操作数据库 我们来看下什么是orm 使用orm有什么好处 Dajngo的orm-model 1.什么是ORM?....Admin 3.1 admin 1.django自带一个admin的后台,只需要简单的配置就能让我们快速的使用,这是django的一个强大之处。...ListView和DetailView 4.2 使用dajngo自带的ListView v 编写app的views.py 4.3 使用django自带的DetailView 4.4 配置app的urls.py

    2.4K51

    DjangoORM介绍和字段及其参数

    和数据库的表对应; 的每个实例对应表的一条记录; 的每个属性对应表的每个字段。 ORM提供了对数据库的映射,不用直接编写SQL代码,只需像操作对象一样从数据库操作数据。...但是在整个软件开发过程需要特殊处理的情况应该都是很少的,否则所谓的工具也就失去了它存在的意义。 Django的ORM Django项目使用MySQL数据库 1....综上所述,Django为您提供了一个自动生成的数据库访问API,详询官方文档链接。 ?...Django支持MySQL5.5及更高版本。  DjangoORM常用的字段和参数 常用的字段 AutoField:int自增,必须填入参数 primary_key = True 。...是否添加 class Meta 到你的 model 完全是可选的. app_label app_label这个选项只在一种情况下使用,就是你的模型不在默认的应用程序包下的models.py文件,这时候你需要指定你这个模型是那个应用程序的

    2.8K80

    Android最常用的控件ListView(详解)

    一.ListView简介 在Android开发ListView是一个比较常用的控件。它以列表的形式 展示具体数据内容,并且能够根据数据的长度自适应屏幕显示。...2、ArrayAdapter可以通过来指定要适配的数据类型,然后在构造凼数把要适配的数据传入。 3、ArrayAdapter有多个构造函数的重载,可以根据实际情况选择最合适的一种。...Position: 指的是adapter的某一项的位置,点击了listview第2项,而第2项对应 的是adapter的第2个数值,那此时position的值就为1了。...List fruitlist = new ArrayList(); List里面既包括图片又包含文本,因此我们要定义一个Fruit 2.Fruit public class Fruit...(1)创建好后需要添加(也就是我们创建的Fruit) (2)按下键盘上的Alt+Enter键创建构造方法(倒数第二个list) (3)重写getView方法 4.inflate()方法

    2.4K10

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

    在年/月/日归档页面,以及详细页面和“最后发表”页面,展示以数据库为基础的对象。 允许用户创建,更新和删除对象 – 以授权或者无需授权的方式。...如果你将你的视图实现为通用视图的子类,你就会发现这样能够更有效地编写你想要的代码,使用你自己的基于或功能的视图。 在一些三方的应用,有更多通用视图的示例,或者你可以自己按需编写。...在一个通用视图上的context_object_name属性指定了要使用的定了上下文变量: # views.py from django.views.generic import ListView from...DetailView通用视图提供了一个publisher对象给context,但是我们如何在模板添加附加信息呢?...如果你想要展现某个出版商的所有图书列表,你可以使用 同样的手法: from django.views.generic import ListView from books.models import Book

    1.4K40

    Adapter与ListView的简单应用(下)Android应用界面开发

    发现,既然ArrayAdapter是接受的,那其实什么样的都能传给它,并且它继承自BaseAdapter,可使用的方法很多。...包含List的构造方法: public ArrayAdapter(Context context, int resource, List objects) 其它上一篇都说了,这次不使用数组,...而使用一个集合List objects,并且去掉了一个构造参数int textViewResourceId (也就是textView的ID),这次不只针对单行的文本,所以只有这个参数不够用呀...ListView01 自己思考后,画了2张图,原创的! 其实,在数据源每一个object(包含各种Java),在ListView对应着每一个item(列表的每一个横行) ?...ListView02 而Java的对应的变量,则可以一 一对应与item布局文件的各个属性。 来,编代码,存在一个Data,表示每一个Item包含的内容。

    62620

    DjangoORM操作

    前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb...的settings.py文件设置 连接 MySQL数据库(Django默认使用的是sqllite数据库) DATABASES = { 'default': { 'ENGINE':...,其主要目的是为了封装底层SQL语句; 1、字符串(以下都是在数据库本质都是字符串数据类型,此类字段只是在Django自带的admin中生效) name=models.CharField(max_length...bigint存储,ORM获取的值为datetime.timedelta类型 FloatField(Field) - 浮点 DecimalField(Field)...: orm操作可以使用实例化,obj.save的方式,也可以使用create()的形式 QuerySet数据类型介绍 QuerySet与惰性机制 所谓惰性机制:Publisher.objects.all

    4.8K10

    drf序列化器之反序列化的数据验证

    使用序列化器进行反序列化时,需要对数据进行验证后,才能获取验证成功的数据或保存成模型对象。...', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] 创建表模型 from django.db import models...此时,就可以使用序列化器的反序列化器,接下来,定义一个图书的序列化器,此序列化器主要用于反序列化器阶段,在unsers子应用,创建serializers.py,代码如下 from rest_framework...SlugField(maxlength=50, min_length=None, allow_blank=False) 正则字段,验证正则模式 [a-zA-Z0-9-]+ URLField URLField...5ce0e9a5-5ffa-654b-cee0-1238041fb31a" 2) 'hex' "5ce0e9a55ffa654bcee01238041fb31a" 3)'int' - : "123456789012312313134124512351145145114

    2.1K30

    Django之Admin文档生成器

    Django的admindocs应用可以从模型、视图、模板标签等地方获得文档内容。...安装Python的docutils模块(http://docutils.sf.net/)(pip3 install docutils) 可选:想使用admindocs的书签小工具,需要安装django.contrib.admindocs.middleware.XViewMiddleware...下面的这些特殊标记,可帮助你在文档字符串,快速创建指向其它组件的链接: ? 二、模型 在doc页面的模型部分,列出了所有的模型,点击可以查看具体的字段等细节信息。...single blog entry, related to :model:`blog.Blog` and :model:`auth.User`. """ slug = models.SlugField...主要包括下面这些信息,请尽量丰富它们: 视图功能的简单描述 上下文环境,或者视图模块里的变量列表 视图内使用的模板 例如: from django.shortcuts import render from

    73020
    领券