git icon indicating copy to clipboard operation
git copied to clipboard

Homework

Open Gitfixing opened this issue 1 year ago • 0 comments

1)Для изменения названия раздела с объявлениями в админке необходимо в файле apps.py определить класс конфигурации приложения и задать атрибут verbose_name_plural.

from django.apps import AppConfig

class AdvertisementsConfig(AppConfig): name = 'advertisements' verbose_name_plural = 'Объявления'

2)Для вывода времени последнего обновления объявления можно использовать метод strftime() для форматирования даты и времени. Например:

from django.utils import timezone

class Advertisement(models.Model): title = models.CharField(max_length=100) description = models.TextField() price = models.DecimalField(max_digits=8, decimal_places=2) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True)

def __str__(self):
    return self.title

def updated_at_display(self):
    if self.updated_at.date() == timezone.now().date():
        return f"Сегодня в {self.updated_at.strftime('%H:%M')}"
    else:
        return self.updated_at.strftime('%d.%m.%Y %H:%M')

updated_at_display.short_description = 'Последнее обновление'

Для того, чтобы отображать это поле в админке, необходимо добавить его в список полей (list_display) в классе администратора:

from django.contrib import admin from .models import Advertisement

class AdvertisementAdmin(admin.ModelAdmin): list_display = ('title', 'price', 'created_at', 'updated_at_display')

admin.site.register(Advertisement, AdvertisementAdmin)

Gitfixing avatar Jul 24 '23 21:07 Gitfixing