Столкнулся с проблемой, что проект Django отображает данные portfolio на сайте, когда в админке на сайте их добавляешь. но эти данные не отображаются в таблице sql.
По идее ведь данные ведь должны отобразиться в таблице portfolio_portfolio, я правильно понимаю? но, как видите, здесь они пустые. только какие-то отступы большие показывает, как в следующем шаге:
tuser@thost:~$ psql -U tuser -d dato138it -h 188.225.34.21
dato138it=# \d
List of relations
Schema | Name | Type | Owner
--------+-----------------------------------+----------+-------
public | auth_group | table | tuser
...
public | portfolio_category | table | tuser
public | portfolio_category_id_seq | sequence | tuser
public | portfolio_place | table | tuser
public | portfolio_place_id_seq | sequence | tuser
public | portfolio_portfolio | table | tuser
public | portfolio_portfolio_id_seq | sequence | tuser
(26 rows)
dato138it=# select * from portfolio_portfolio;
id | progress
|
Ведь остальные таблицы portfolio_category и portfolio_place отображают изменения. Как, например, в следующем шаге, я добавил категорию Html-Developer на сайте в странице админки:
dato138it=# select * from portfolio_category;
id | name | ordinal
----+-----------+---------
4 | Engineer | 1
5 | Developer | 2
(2 rows)
dato138it=# select * from portfolio_category;
id | name | ordinal
----+----------------+---------
4 | Engineer | 1
5 | Developer | 2
6 | Html-Developer | 3
(3 rows)
Что я делаю не так?
Вот сам файл models.
from django.db import models
#from ckeditor_uploader.fields import RichTextUploadingField
from django_ckeditor_5.fields import CKEditor5Field
class Place(models.Model):
title = models.CharField(max_length=255, verbose_name="Место работы")
spec = models.CharField(max_length=255, verbose_name="Должность")
years = models.CharField(max_length=25, blank=True, null=True)
description = models.TextField(verbose_name="Обязанности")
progress = models.TextField(verbose_name="Достижения")
doc=models.FileField(upload_to="uploads/%Y/%m/%d/", verbose_name="Файлы", blank=True, null=True)
begin=models.DateField(blank=True, null=True, verbose_name="Начало работы")
finish=models.DateField(blank=True, null=True, verbose_name="Конец работы")
is_published=models.BooleanField(default=True, verbose_name="Публикация")
cat=models.ForeignKey('Category', on_delete=models.PROTECT, null=True, verbose_name="Категории")
ordinal = models.IntegerField()
class Portfolio(models.Model):
#progress = models.TextField(verbose_name="Достижение")
progress = CKEditor5Field(verbose_name="Достижение", config_name='extends')
#description = RichTextUploadingField(verbose_name="Описание")
description = CKEditor5Field(verbose_name="Описание", config_name='extends')
image = models.ImageField(upload_to='uploads/%Y/%m/%d/', blank=True, null=True)
url = models.URLField(blank=True, null=True)
class Category(models.Model):
name=models.CharField(max_length=100, db_index=True, verbose_name="Категория")
ordinal = models.IntegerField()
На всякий случай покажу файл views:
from django.contrib.auth.models import User
from rest_framework import permissions, viewsets
from rest_framework.permissions import IsAuthenticatedOrReadOnly, AllowAny
from .serializers import UserSerializer, PlaceSerializer, PortfolioSerializer, CategorySerializer
from .models import Place, Portfolio, Category
from django.http import HttpResponseRedirect, HttpResponseNotFound
from django.template import loader
from django.shortcuts import render
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer
permission_classes = [permissions.IsAuthenticated]
#permission_classes = [permissions.AllowAny]
class PlaceViewSet(viewsets.ModelViewSet):
queryset = Place.objects.all()
serializer_class = PlaceSerializer
permission_classes = [IsAuthenticatedOrReadOnly]
class PortfolioViewSet(viewsets.ModelViewSet):
queryset = Portfolio.objects.all()
serializer_class = PortfolioSerializer
permission_classes = [IsAuthenticatedOrReadOnly]
class CategoryViewSet(viewsets.ModelViewSet):
queryset = Category.objects.all()
serializer_class = CategorySerializer
permission_classes = [IsAuthenticatedOrReadOnly]
def contents(request):
#print('Кто-то зашёл на главную!')
content = Portfolio.objects.all()
return render(request, "index.html", {"content": content})