added new application partner, added new model Partner

This commit is contained in:
Anatoly 2019-08-23 16:58:27 +03:00
parent 6e12612192
commit 1de7a84d56
8 changed files with 89 additions and 3 deletions

View File

@ -1 +1,8 @@
# Register your models here.
from django.contrib import admin
from partner import models
@admin.register(models.Partner)
class PartnerModelAdmin(admin.ModelAdmin):
"""Model admin for Partner model."""

View File

@ -0,0 +1,31 @@
# Generated by Django 2.2.4 on 2019-08-23 13:50
from django.db import migrations, models
import django.utils.timezone
import easy_thumbnails.fields
import utils.methods
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Partner',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created', models.DateTimeField(default=django.utils.timezone.now, editable=False, verbose_name='Date created')),
('modified', models.DateTimeField(auto_now=True, verbose_name='Date updated')),
('image', easy_thumbnails.fields.ThumbnailerImageField(blank=True, default=None, null=True, upload_to=utils.methods.image_path, verbose_name='Image')),
('url', models.URLField(verbose_name='Partner URL')),
],
options={
'verbose_name': 'partner',
'verbose_name_plural': 'partners',
},
),
]

View File

@ -7,3 +7,10 @@ from utils.models import ImageMixin, ProjectBaseMixin
class Partner(ProjectBaseMixin, ImageMixin):
"""Partner model."""
url = models.URLField(verbose_name=_('Partner URL'))
class Meta:
verbose_name = _('partner')
verbose_name_plural = _('partners')
def __str__(self):
return f'{self.url}'

View File

@ -1 +1,15 @@
# Mixin
from rest_framework import serializers
from partner import models
# Serializers
class PartnerSerializer(serializers.ModelSerializer):
"""Serializer for model Partner"""
class Meta:
"""Meta class"""
model = models.Partner
fields = (
'id',
'url'
)

View File

@ -1,4 +1,11 @@
"""Partner app common urlconf."""
from django.urls import path
from partner.views import common as views
app_name = 'partner'
urlpatterns = [
path('list/', views.PartnerListView.as_view(),
name='partner_list')
]

View File

@ -0,0 +1,18 @@
from rest_framework import generics
from rest_framework import permissions
from partner import models
from partner.serializers import common as serializers
# Mixins
class PartnerViewMixin(generics.GenericAPIView):
"""View mixin for Partner views"""
queryset = models.Partner.objects.all()
# Views
class PartnerListView(PartnerViewMixin, generics.ListAPIView):
"""List Partner view"""
permission_classes = (permissions.AllowAny, )
serializer_class = serializers.PartnerSerializer

View File

@ -59,6 +59,7 @@ PROJECT_APPS = [
'news.apps.NewsConfig',
'translation.apps.TranslationConfig',
'collection.apps.CollectionConfig',
'partner.apps.PartnerConfig'
]
EXTERNAL_APPS = [

View File

@ -20,5 +20,6 @@ app_name = 'web'
urlpatterns = [
path('account/', include('account.urls.web')),
path('news/', include('news.urls.web')),
path('collection/', include('collection.urls.web'))
path('collection/', include('collection.urls.web')),
path('partner/', include('partner.urls.web')),
]