如何使用动态 URL 访问数据库项

How to access database items with dynamic URLs

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

这是我的模型:

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

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

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

some_view 中,有一个额外的参数 pk 将采用输入的值在路径中 int:

from django.shortcuts import get_object_or_404, render

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

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

{{ <b>item</b> }}