Создадим первую статью.
Для того чтобы исправить House object(название статьи), нужно в models.py создать метод __str__
def __str__(self):
return self.house_name
Full Code:
class House(models.Model):
house_name = models.CharField(«Название», max_length=200, default=»»)
house_price = models.IntegerField(«Цена», default=0)
house_description = models.TextField(«Описание», default=»»)
class Meta:
verbose_name = «Дом»
verbose_name_plural = «Дом»
def __str__(self):
return self.house_name
Метод __str__ отвечает за имя объекта, в нашем случае за имя одного дома, мы также можем вернуть как какое либо поле модели, так и какую-нибудь форматированную строку
def __str__(self):
return «Статья номер {}».format(self.id)
Добавим отображение дополнительных полей в админке
@admin.register(House)
class ArticleAdmin(admin.ModelAdmin):
list_display = [«name», «price»]
Сейчас дома будут отображаются в том порядке, в котором мы их добавили, но хотелось бы их отсортировать, например по алфавиту, по цене, по дате
В файле models.py, в классе Meta добавим:
class Meta(object):
ordering = [«name»]
Full code:
from django.db import models
# Create your models here.
class House(models.Model):
house_name = models.CharField(«Название», max_length=200, default=»»)
house_price = models.IntegerField(«Цена», default=0)
house_description = models.TextField(«Описание», default=»»)
class Meta:
verbose_name = «Дом»
verbose_name_plural = «Дом»
ordering = [«house_name», «house_price»]
def __str__(self):
return self.house_name
Для настройки фильтрации данных статей используем list и в admin.py добавим
list_filter = [«house_price»]
Full code:
from django.contrib import admin
from houses.models import House
@admin.register(House)
class AdminHouse(admin.ModelAdmin):
list_display = [«house_name», «house_price»]
list_filter = [«house_price»]
Автор: Vladimir Semenovich