a-roomana / django-jalali-date

Jalali Date support for user interface. Easy conversion of DateTimeFiled to JalaliDateTimeField within the admin site, views, forms and templates.
MIT License
295 stars 33 forks source link

نمایش میلادی به جای شمسی #15

Closed FarimanGhaedi closed 4 years ago

FarimanGhaedi commented 4 years ago

با سلام من یک مدل برای ذخیره مشخصات افراد دارم که یکی از فیلدهاش تاریخ تولد هست زمانی که به بخش ادمین سایت وارد میشم و لیست یوزرها رو نگاه میکنم اون فیلد رو به صورت میلادی نشون میده اما وقتی که روی یک یوزر کلیک میکنم که مشخصاتش رو ویرایش کنم تاریخ به صورت شمسی نشون داده میشه. در فایل مدل برای فیلد روز تولد از default='1385-06-15" استفاده کردم که مطمئن باشم داده اولیه به صورت شمسی هست ولی همچنان مشکل برقراره در ضمن در قسمت ادمین برای مدل ادمین ModelAdminJalaliMixin رو ایمپورت کردم ممنون میشم راهنمایی کنید

Originally posted by @FarimanGhaedi in https://github.com/a-roomana/django-jalali-date/issues/6#issuecomment-515388843

a-roomana commented 4 years ago

سلام وقت بخیر نکته اول این که این لایبرری در لایه دیتابیس هیچ تغییر ایجاد نمیکند، پس در دیتابیس کماکان تاریخ ها به صورت میلادی ذخیره میشوند نه شمسی. پس لطفا مقدار پیش فرض تاریخ تولد رو یک تاریخ میلادی قرار بدید نه شمسی.

دوم این که گفتید که در فرم به درستی نمایش داده میشود اما در لیست خیر. شما برای این که تاریخ ها در صفحه لیست ابجکت ها نیز شمسی نمایش داده شود میتوانید از نمونه کد زیر استفاده کنید.

from django.contrib import admin
from jalali_date import datetime2jalali

@admin.register(MyModel)
class MyModelAdmin(ModelAdminJalaliMixin, admin.ModelAdmin):
    list_display = ('my_fields', 'jalali_birthdate')

    def jalali_birthdate(self):
        return datetime2jalali(self.birthdate).strftime('%y/%m/%d')

    jalali_created.admin_order_field = 'birthdate'
    jalali_created.short_description = _('birthdate')
FarimanGhaedi commented 4 years ago

ممنون از پاسخگویی تون ولی الان یه همچین خطایی میده: jalali_birthdate() takes 1 positional argument but 2 were given

FarimanGhaedi commented 4 years ago

ایراد رو پیدا کردم. متد jalali_birthdate رو داخل فایل ادمین نوشته بودم. از اونجا منتقلش کردم داخل خود مدل