mirror of
https://github.com/daniviga/django-ram.git
synced 2025-08-04 05:07:50 +02:00
* Add shop field (from properties) * Update template * Implement description in BaseModel and then consist * Make notes internal only * Fix a merge issue
52 lines
1.2 KiB
Python
52 lines
1.2 KiB
Python
from rest_framework import serializers
|
|
from bookshelf.models import Book, Catalog, Author, Publisher
|
|
from metadata.serializers import (
|
|
ScaleSerializer,
|
|
ManufacturerSerializer,
|
|
TagSerializer
|
|
)
|
|
|
|
|
|
class AuthorSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Author
|
|
fields = "__all__"
|
|
|
|
|
|
class PublisherSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Publisher
|
|
fields = "__all__"
|
|
|
|
|
|
class BookSerializer(serializers.ModelSerializer):
|
|
authors = AuthorSerializer(many=True)
|
|
publisher = PublisherSerializer()
|
|
tags = TagSerializer(many=True)
|
|
|
|
class Meta:
|
|
model = Book
|
|
exclude = (
|
|
"notes",
|
|
"shop",
|
|
"purchase_date",
|
|
"price",
|
|
)
|
|
read_only_fields = ("creation_time", "updated_time")
|
|
|
|
|
|
class CatalogSerializer(serializers.ModelSerializer):
|
|
scales = ScaleSerializer(many=True)
|
|
manufacturer = ManufacturerSerializer()
|
|
tags = TagSerializer(many=True)
|
|
|
|
class Meta:
|
|
model = Catalog
|
|
exclude = (
|
|
"notes",
|
|
"shop",
|
|
"purchase_date",
|
|
"price",
|
|
)
|
|
read_only_fields = ("creation_time", "updated_time")
|