ویدیو آموزش urlهای فارسی در جنگو
برای استفاده از url فارسی در جنگو باید در مدلهاتون مقدار آپشن allow_unicode در فیلد SlugField را True قرار دهید:
# my_app/models.py
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=20)
slug = models.SlugField(max_length=20, allow_unicode=True)
با اینکار SlugField شما میتونه کاراکترهای فارسی رو قبول کنه. اما این مرحله اول بود.
در مرحله دوم باید urlهای خودتون رو تغییر بدین. جنگو به صورت پیشفرض از کاراکترهای یونیکد شده در urlها پشتیبانی نمیکنه. پس مجبورید از متد re_path استفاده کنید تا بتونید regex مخصوص خودتون رو داشته باشید:
# my_app/urls.py
form django.urls import re_path
from . import views
urlpatterns = [
re_path(r'(?P<slug>[-\w]+)/', views.detail),
]
با استفاده از regex بالا میتونید کاراکترهای فارسی رو در url استفاده کنید.
مشکلی که روش بالا داره اینکه بخاطر استفاده از حروف فارسی، url از راست به چپ نوشته خواهد شد. برای حل این مشکل میتونید قبل از regex از یک کلمه یا حرف انگلیسی استفاده کنید:
re_path(r'detail/(?P<slug>[-\w]+)/', views.detail),
ارسال نظر