我想在更新视图的URL中显示要为其更新详细信息的人员的用户名或姓名。我知道的唯一方法是在网址中显示pk。有没有一种方法可以用字段值替换pk?预先感谢。
答案 0 :(得分:2)
是的,您只需在URL中定义slug
或str
部分。例如:
# app/urls.py
from django.urls import path
from app import views
urlpatterns = [
path('user/<str:username>/', views.user_details),
]
并且在您的视图中,例如,您可以使用username
字段为username
URL参数进行查询:
# app/views.py
from django.contrib.auth.models import User
from django.shortcuts import get_object_or_404
def user_details(request, username):
user = get_object_or_404(User, username=username)
# ...
答案 1 :(得分:2)
您可以使用slug
。您可以使用pip install django-autoslug
安装slug,例如:
from autoslug import AutoSlugField
class A(models.Model):
field = models.CharField(max_length=250)
slug = AutoSlugField(unique_with='id', populate_from='field')
在urls.py
中使用子弹,如下所示:
path('<slug>/..../', views...., name='....'),