Skip to content

Instantly share code, notes, and snippets.

django_blog
├── api
│ ├── django_blog
│ │ ├── apps
│ │ │ ├── account
│ │ │ │ ├── admin.py
│ │ │ │ ├── apps.py
│ │ │ │ ├── forms.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── managers.py
@olegkovalov
olegkovalov / test_models.py
Last active September 8, 2019 20:47
test_models
from django.test import TestCase
from django_blog.apps.blog.models import Post, Tag
class PostTestCase(TestCase):
def test_post(self):
self.assertEquals(
Post.objects.count(),
0
@olegkovalov
olegkovalov / post.py
Created September 8, 2019 21:01
models
from django.db import models
from django_blog.apps.account.models import User
from django_blog.apps.common.models import CoreModel
class Tag(models.Model):
name = models.CharField(max_length=100, unique=True)
@olegkovalov
olegkovalov / shell
Last active September 8, 2019 21:11
run test_models
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
..
----------------------------------------------------------------------
Ran 2 tests in 0.005s
OK
@olegkovalov
olegkovalov / tests.py
Created September 8, 2019 22:21
test views
from django.urls import reverse
from rest_framework.test import APITestCase
from rest_framework.views import status
from django_blog.apps.blog.models import Post, Tag
class PostListCreateAPIView(APITestCase):
def setUp(self) -> None:
@olegkovalov
olegkovalov / post.py
Created September 8, 2019 22:33
serializer
from rest_framework import serializers
from django_blog.apps.account.models import User
from django_blog.apps.blog.models import Tag, Post
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('pk', 'email', 'first_name', 'last_name',)
@olegkovalov
olegkovalov / serialize_post.py
Created September 8, 2019 22:47
serialize post
from django_blog.apps.blog.models import Post
from django_blog.apps.blog.rest_api.serializers.post import PostSerializer
post = Post.objects.create(title='First post', text='This is a first post')
print(PostSerializer(post).data)
# {'pk': '4670511f-4a03-455e-a160-18c396fa743d', 'title': 'First post', 'text': 'This is a first post', 'tags': [], 'author': None, 'image': None}
@olegkovalov
olegkovalov / blog_views.py
Created September 8, 2019 22:54
blog views
from rest_framework.generics import ListCreateAPIView, RetrieveUpdateDestroyAPIView
from django_blog.apps.blog.models import Post
from django_blog.apps.blog.rest_api.serializers.post import PostSerializer
class PostListCreateAPIView(ListCreateAPIView):
"""
API view to retrieve list of posts or create new
"""
@olegkovalov
olegkovalov / urls.py
Created September 8, 2019 22:57
blog urls
from django.urls import path
from .views import blog_views
urlpatterns = [
path('posts/', blog_views.PostListCreateAPIView.as_view(), name='api-post-list'),
path('posts/<uuid:pk>/', blog_views.PostDetailsAPIView.as_view(), name='api-post-details'),
]
@olegkovalov
olegkovalov / shell
Created September 8, 2019 23:03
tests
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.......
----------------------------------------------------------------------
Ran 7 tests in 0.036s
OK
Destroying test database for alias 'default'...