Как отобразить название категории товара вместо объекта Category (1) django 3.1
В моем бэкенде django не отображается название категории, а вместо этого выдается результат объекта категории скриншот нежелательного результата в поле категории. Как мне это исправить?
Ниже приведен фрагмент моих admin.py и model.py
category/admin.py
from django.contrib import admin
from .models import Category
# Register your models here.
class CategoryAdmin(admin.ModelAdmin):
prepopulated_fields = {'slug': ('category_name',)}
list_display = ('category_name', 'slug')
admin.site.register(Category, CategoryAdmin)
categories/model.py
from django.db import models
# Create your models here.
class Category(models.Model):
class Meta:
verbose_name = 'category'
verbose_name_plural = 'categories'
category_name = models.CharField(max_length=50, unique=True)
slug = models.SlugField(max_length=100, unique=True)
description = models.TextField(max_length=255, blank=True)
cat_image = models.ImageField(upload_to='photos/categories', blank=True)
def __str__(self):
return self.category_name
store/models.py
class Product(models.Model):
product_name = models.CharField(max_length=200, unique=True)
slug = models.SlugField(max_length=200, unique=True)
description = models.TextField(max_length=500, blank=True)
price = models.IntegerField()
images = models.ImageField(upload_to='photos/products')
stock = models.IntegerField()
out_of_stock = models.BooleanField(default=False)
is_available = models.BooleanField(default=True)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
created_date = models.DateTimeField(auto_now_add=True)
modified_date = models.DateTimeField(auto_now=True)
def __str__(self):
return self.product_name
store/admin.py
from django.contrib import admin
from .models import Product
# Register your models here.
class ProductAdmin(admin.ModelAdmin):
list_display = ('product_name', 'price', 'category',
'modified_date', 'is_available', 'out_of_stock')
prepopulated_fields = {'slug': ('product_name',)}
admin.site.register(Product, ProductAdmin)
settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'category',
'accounts',
'store',
Проверьте, что строковое представление вашего объекта __str__
является частью класса Category, тогда страница администратора должна использовать его для отображения информации об объекте в таком списке.
from django.db import models
# Create your models here.
class Category(models.Model):
class Meta:
verbose_name = 'category'
verbose_name_plural = 'categories'
category_name = models.CharField(max_length=50, unique=True)
slug = models.SlugField(max_length=100, unique=True)
description = models.TextField(max_length=255, blank=True)
cat_image = models.ImageField(upload_to='photos/categories', blank=True)
# here!
def __str__(self):
return self.category_name