mirror of
https://github.com/pinry/pinry.git
synced 2025-11-13 08:35:41 +01:00
Feature: Allow auto-creation for tags for pin / fix admin format
This commit is contained in:
@@ -6,5 +6,5 @@ from .models import Pin
|
||||
class PinAdmin(admin.ModelAdmin):
|
||||
pass
|
||||
|
||||
admin.site.register(Pin, PinAdmin)
|
||||
|
||||
admin.site.register(Pin, PinAdmin)
|
||||
|
||||
@@ -57,11 +57,26 @@ class ImageSerializer(serializers.ModelSerializer):
|
||||
return image
|
||||
|
||||
|
||||
class TagSerializer(serializers.ModelSerializer):
|
||||
class TagSerializer(serializers.SlugRelatedField):
|
||||
class Meta:
|
||||
model = Tag
|
||||
fields = ("name",)
|
||||
|
||||
queryset = Tag.objects.all()
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super(TagSerializer, self).__init__(
|
||||
slug_field="name",
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def to_internal_value(self, data):
|
||||
obj, _ = self.get_queryset().get_or_create(
|
||||
**{self.slug_field: data},
|
||||
defaults={self.slug_field: data, "slug": data}
|
||||
)
|
||||
return obj
|
||||
|
||||
|
||||
class PinSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
@@ -82,11 +97,9 @@ class PinSerializer(serializers.HyperlinkedModelSerializer):
|
||||
"submitter": {"read_only": True},
|
||||
}
|
||||
|
||||
tags = serializers.SlugRelatedField(
|
||||
tags = TagSerializer(
|
||||
many=True,
|
||||
source="tag_list",
|
||||
queryset=Tag.objects.all(),
|
||||
slug_field="name",
|
||||
)
|
||||
image = ImageSerializer(required=False, read_only=True)
|
||||
image_by_id = serializers.PrimaryKeyRelatedField(
|
||||
|
||||
Reference in New Issue
Block a user