首页 > 解决方案 > 如何使用动态 URL 访问数据库项目

问题描述

如何使我的网站在我访问 url 'mywebsite.com/1/' 时,会显示一个 ID 为 '1' 的数据库项目?我找到的所有教程都是用于在旧版本的 Django 中设置“urls.py”,而不是如何制作动态 url。

这是我的模型:

from django.db import models

# Create your models here.
class video (models.Model):

    VID_CHOICES = (
        ('News', 'News'),
        ('Stam', 'Stam'),
        ('Music', 'Music'),
        ('Ad', 'Ad'),
    )
    
    url = models.CharField(max_length=1000)
    title = models.CharField(max_length=100)
    description = models.CharField(max_length=1000, blank=True)
    show_after_time = models.DateTimeField('show after')
    category = models.CharField(max_length=20, choices=VID_CHOICES)
    tag = models.CharField(max_length=100, blank=True)

    def __str__(self):
        return self.title

标签: pythondjangodjango-modelsdjango-urls

解决方案


您可以创建一个接受参数的路径,例如:

path('<int:pk>/', some_view, name='some_view'),

在 中some_view,还有一个额外的参数pk,它将在路径中输入的值作为int

from django.shortcuts import get_object_or_404, render

def some_view(request, pk):
    item = get_object_or_404(MyModel, pk=pk)
    return render(request, 'app_name/some_template.html', {'item': item})

然后在模板中,您可以渲染的(属性)item

{{ item }}

推荐阅读