سلام من توی لوکال هاست جنس slug رو از str قرار دادم و url فارسی بدرستی کار میکرد
path('<str:slug>', views.ProductDetailView.as_view(), name='product-detail')
allow_unicode هم هم توی فیلد دیتابیس True قرار دادم هم توی متد slugify اما همین که سایت رو به سرور انتقال دادم دیگه محصول رو پیدا نمی کنه و 404 بر می گردونه
ممنو میشم راهنمایی کنید
با سلام.
از چه DB در سرور استفاده می کنید؟
دقیقا من هم به این فکر کردم که مشکل از دیتابیس باشه
دیتا بیس لوکال هاست sqlite هستش
دیتا بیس هاست mySql هست
encoding جدول ها هم روی utf8 گذاشتم
برای فیلد slug هم allow_unicode قرار دادید؟
بله برای اسلاگ هم قرار دادم
slug = md.SlugField(null=False, blank=True, max_length=200, unique=True, allow_unicode=True, verbose_name='عنوان در url')
def get_absolute_url(self):
return reverse('product-detail', args=[self.slug])
def save(self, *args, **kwargs):
self.slug = slugify(self.title, allow_unicode=True)
super().save(*args, **kwargs)
بنده الان متوجه شدم دیتابیس سایتم MariaDB هست ممکنه مشکل از این باشه؟
بعد فرق این دیتابیس با MySql چیه؟
MariaDB یک fork از MySQL است.
این پست را ببینید. یکی از دوستان با encoding ها مشکل داشت که با تغییر driver مربوط به MySQL مشکل حل شد.
شما نیز این روش را تست کنید.
پکیج mysqlclient به یه سری dependency های زبان C نیاز داشت که روی هاست نبودن و نمی شد استفاده کنم
در پکیج mysql connector python هم دقیقا به مشکل همین پستی که گفتید بر خوردم و از pymysql استفاده کردم
به هر حال فکر می کنم مشکل از دیتابیس هستش
بازم ممنون از پاسخ گوییتون
خواهش می کنم. حالا که از pymysql استفاده کردید، در init واقع در root اصلی پروژه، این کدها را قرار دهید و تست کنید:
import pymysql
pymysql.install_as_MySQLdb()
امید که جواب دهد.
اینا رو هم قرار دادم
در واقع اینا رو اگه قرار ندی از پکیج نمی شه استفاده کرد
بازم ممنون که هستید و به سوالات پاسخ میدید❤
سلام دوست من
برای استفاده از پکیج MySqlClient به پشتیبانی تیکت بزنین و بهشون بگین که قصد دارین چه پکیجی رو نصب کنین تا پکیجی که نیاز دارین رو نصب کنن
معمولا در ابتدا از این کار خودداری میکنن اما با توضیح اینکه قصد دارین از data connector استفاده کنین براتون انجام میدن
اگر باز هم کاراکتر های فارسی نمایش داده نشدن میتونین از داخل تنظیمات اصلی venv روش encoding رو روی utf-8 قرار بدین تا بدون مشکل تبدیل کنه
سلام استاد
ممنون از پاسختون❤
سلامت باشین دوست من
موفق باشین :)