большой рефакторинг
This commit is contained in:
parent
b987783d15
commit
dd49e644d4
|
|
@ -20,9 +20,19 @@ class Song(models.Model):
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.artist} - {self.title}"
|
return f"{self.artist} - {self.title}"
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = 'Треки'
|
||||||
|
verbose_name_plural = 'Треки'
|
||||||
|
|
||||||
|
|
||||||
class FavoriteSong(models.Model):
|
class FavoriteSong(models.Model):
|
||||||
song = models.ForeignKey(Song, verbose_name='Трек', on_delete=models.CASCADE, null=True, blank=True)
|
song = models.ForeignKey(Song, verbose_name='Трек', on_delete=models.CASCADE, null=True, blank=True)
|
||||||
user = models.ForeignKey(MyUser, verbose_name='Пользователь', on_delete=models.CASCADE, blank=True, null=True)
|
user = models.ForeignKey(MyUser, verbose_name='Пользователь', on_delete=models.CASCADE, blank=True, null=True)
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.song.title}"
|
return f"{self.song.title}"
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = 'Избранные Треки'
|
||||||
|
unique_together = ('song', 'user')
|
||||||
|
verbose_name_plural = 'Избранные Треки'
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -6,7 +6,7 @@ ALLOWED_HOSTS = ['*']
|
||||||
|
|
||||||
# Database
|
# Database
|
||||||
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
|
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
|
||||||
DATABASES = {
|
""" DATABASES = {
|
||||||
'default': {
|
'default': {
|
||||||
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
||||||
'NAME': 'it_radio',
|
'NAME': 'it_radio',
|
||||||
|
|
@ -15,6 +15,12 @@ DATABASES = {
|
||||||
'HOST': 'localhost',
|
'HOST': 'localhost',
|
||||||
'PORT': '5433',
|
'PORT': '5433',
|
||||||
},
|
},
|
||||||
|
} """
|
||||||
|
DATABASES = {
|
||||||
|
'default': {
|
||||||
|
'ENGINE': 'django.db.backends.sqlite3',
|
||||||
|
'NAME': BASE_DIR / 'db.sqlite3',
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
REST_FRAMEWORK['DEFAULT_PERMISSION_CLASSES'] = ('rest_framework.permissions.AllowAny',)
|
REST_FRAMEWORK['DEFAULT_PERMISSION_CLASSES'] = ('rest_framework.permissions.AllowAny',)
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ from rest_framework_simplejwt.views import (
|
||||||
TokenVerifyView,
|
TokenVerifyView,
|
||||||
)
|
)
|
||||||
from django.conf.urls.static import static
|
from django.conf.urls.static import static
|
||||||
from news import views as newsViews
|
|
||||||
from rest_framework import routers
|
from rest_framework import routers
|
||||||
from userProfile.views import TeamViewSet
|
from userProfile.views import TeamViewSet
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
@ -17,7 +16,6 @@ from audio.views import SongViewSet
|
||||||
|
|
||||||
|
|
||||||
router = routers.DefaultRouter()
|
router = routers.DefaultRouter()
|
||||||
router.register(r'news', newsViews.NewsViewSet)
|
|
||||||
router.register(r'teams', TeamViewSet, basename='teams')
|
router.register(r'teams', TeamViewSet, basename='teams')
|
||||||
router.register(r'rubriks', RubricViewSet, basename='rubriks')
|
router.register(r'rubriks', RubricViewSet, basename='rubriks')
|
||||||
router.register(r'song', SongViewSet, basename='song')
|
router.register(r'song', SongViewSet, basename='song')
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
from django.contrib import admin
|
|
||||||
from .models import ConfigSite
|
|
||||||
|
|
||||||
@admin.register(ConfigSite)
|
|
||||||
class ConfigSiteAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ('id', 'social_name', 'social_url')
|
|
||||||
|
|
@ -1,12 +1,13 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
class ConfigSite(models.Model):
|
class Page(models.Model):
|
||||||
social_name = models.CharField('Название социальной сети', max_length=100)
|
name = models.CharField('Название страницы', max_length=50)
|
||||||
social_url = models.CharField('Социальная сеть', max_length=100)
|
title_1 = models.TextField('Главный заголовок на странице', null=True, blank=True, max_length=300)
|
||||||
|
title_2 = models.TextField('Второй заголовок на странице', null=True, blank=True, max_length=300)
|
||||||
def __str__(self):
|
title_3 = models.TextField('Третий заголовок на странице', null=True, blank=True, max_length=300)
|
||||||
return self.social_name
|
video = models.FileField('Видео', upload_to='videos/', null=True, blank=True)
|
||||||
|
img = models.ImageField('Изображение', blank=True, null=True, upload_to="images/")
|
||||||
|
title_4 = models.TextField('Заголовок "Поддержи нас" ', null=True, blank=True, max_length=200)
|
||||||
|
|
||||||
class Meta:
|
def __str__(self):
|
||||||
verbose_name = 'Настройки сайта'
|
return self.name
|
||||||
verbose_name_plural = 'Настройки сайта'
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,11 @@
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
|
from rest_framework.viewsets import ViewSet, GenericViewSet
|
||||||
|
from rest_framework.response import Response
|
||||||
|
from rest_framework.decorators import action
|
||||||
|
from rest_framework import status
|
||||||
|
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
|
||||||
|
from django.shortcuts import get_object_or_404, get_list_or_404
|
||||||
|
from rest_framework.permissions import IsAuthenticated
|
||||||
|
import requests
|
||||||
|
from .models import Page
|
||||||
|
|
||||||
# Create your views here.
|
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,8 +0,0 @@
|
||||||
from django.contrib import admin
|
|
||||||
from .models import News
|
|
||||||
|
|
||||||
class NewsAdmin(admin.ModelAdmin):
|
|
||||||
list_display = ('name', 'date') # поля, которые будут отображаться
|
|
||||||
ordering = ('-date',) # сортировка по дате в обратном порядке
|
|
||||||
|
|
||||||
admin.site.register(News, NewsAdmin)
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,8 +1,8 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
from django.utils import timezone
|
||||||
|
|
||||||
|
class HistoryRadio(models.Model):
|
||||||
class News(models.Model):
|
description = models.CharField('Описание события кратко', max_length=50)
|
||||||
name = models.CharField(max_length=255)
|
date = models.DateField('Дата события', default=timezone.now, null=True)
|
||||||
description = models.TextField()
|
def __str__(self):
|
||||||
date = models.DateTimeField(blank=True)
|
return f"{self.date}: {self.description}"
|
||||||
author = models.CharField(max_length=255, blank=True)
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
from rest_framework import serializers
|
|
||||||
from .models import News
|
|
||||||
|
|
||||||
class NewsSerializer(serializers.ModelSerializer):
|
|
||||||
class Meta:
|
|
||||||
model = News
|
|
||||||
fields = ['id', 'name', 'description', 'date', 'author']
|
|
||||||
|
|
@ -1,8 +1 @@
|
||||||
from rest_framework import viewsets
|
from .models import HistoryRadio
|
||||||
from .models import News
|
|
||||||
|
|
||||||
from news.serializers import NewsSerializer
|
|
||||||
|
|
||||||
class NewsViewSet(viewsets.ModelViewSet):
|
|
||||||
queryset = News.objects.all()
|
|
||||||
serializer_class = NewsSerializer
|
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue