git
git copied to clipboard
Homework
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)