Skip to content
Snippets Groups Projects
Commit 2e991224 authored by Ole-Christian Bjerkeset's avatar Ole-Christian Bjerkeset
Browse files

added django app for content

created models, seralizers and views for the app
added Pillow to requirements for image support
parent 268325b2
No related branches found
No related tags found
Loading
Checking pipeline status
from django.contrib import admin
from .models import Content
# Register your models here.
admin.site.register(Content)
\ No newline at end of file
from django.apps import AppConfig
class ContentConfig(AppConfig):
name = 'content'
# Generated by Django 3.1 on 2022-03-11 05:50
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('groups', '0004_delete_content'),
]
operations = [
migrations.CreateModel(
name='Content',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.TextField(max_length=100)),
('description', models.TextField()),
('image', models.ImageField(blank=True, upload_to='images')),
('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ownedByGroup', to='groups.group')),
('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='contentOwner', to=settings.AUTH_USER_MODEL)),
],
),
]
from django.db import models
from groups.models import Group
from django.contrib.auth import get_user_model
# Create your models here.
class Content(models.Model):
owner = models.ForeignKey(
get_user_model(), on_delete=models.CASCADE, related_name="contentOwner"
)
group = models.ForeignKey(
Group, on_delete=models.CASCADE, related_name="ownedByGroup"
)
title = models.TextField(max_length=100)
description = models.TextField()
image = models.ImageField(upload_to='images', blank=True)
\ No newline at end of file
from rest_framework import serializers
from .models import Content
class ContentSerializer(serializers.ModelSerializer):
"""Serializer for a group content instance
Serialized fields: id, member, group
"""
class Meta:
model = Content
fields = ["id", "owner", "group", "title", "description", "image"]
\ No newline at end of file
from django.test import TestCase
# Create your tests here.
from django.urls import path
from .views import ContentView, ContentDetail
urlpatterns = [
path("api/content/", ContentView.as_view(), name="content-view"),
path("api/content/<int:pk>/", ContentDetail.as_view(), name="contentDetail-view"),
]
\ No newline at end of file
from rest_framework import generics, mixins
from .models import Content
from rest_framework import permissions
from .serializers import ContentSerializer
# Create your views here.
class ContentView(
mixins.CreateModelMixin,
mixins.RetrieveModelMixin,
mixins.ListModelMixin,
generics.GenericAPIView,
):
"""
View getting and adding content to a group
HTTP methods: GET, POST
"""
queryset = Content.objects.all()
serializer_class = ContentSerializer
def get(self, request, *args, **kwargs):
return self.list(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
class ContentDetail(
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
generics.GenericAPIView,
):
"""
View getting and adding content to a group
HTTP methods: GET, POST
"""
queryset = Content.objects.all()
serializer_class = ContentSerializer
def get(self, request, *args, **kwargs):
return self.retrieve(request, *args, **kwargs)
def put(self, request, *args, **kwargs):
return self.update(request, *args, **kwargs)
\ No newline at end of file
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
......@@ -62,6 +62,7 @@ INSTALLED_APPS = [
"users.apps.UsersConfig",
"comments.apps.CommentsConfig",
"groups.apps.GroupsConfig",
"content.apps.ContentConfig",
"corsheaders",
]
......
......@@ -23,6 +23,7 @@ urlpatterns = [
path("", include("workouts.urls")),
path("", include("meals.urls")),
path("", include("groups.urls")),
path("", include("content.urls")),
]
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
......
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment