create slugs manually
This commit is contained in:
parent
1ce71fdcdc
commit
6420a676df
|
|
@ -1,6 +1,5 @@
|
|||
from django.contrib.postgres.fields import JSONField
|
||||
from django.contrib.contenttypes.fields import ContentType
|
||||
from django_extensions.db.fields import AutoSlugField
|
||||
|
||||
from utils.models import TJSONField
|
||||
from django.db import models
|
||||
|
|
@ -69,8 +68,8 @@ class Collection(ProjectBaseMixin, CollectionNameMixin, CollectionDateMixin,
|
|||
description = TJSONField(
|
||||
_('description'), null=True, blank=True,
|
||||
default=None, help_text='{"en-GB":"some text"}')
|
||||
slug = AutoSlugField(max_length=50, db_index=True, populate_from=['name', 'pk'],
|
||||
verbose_name=_('Collection slug'), editable=True)
|
||||
slug = models.SlugField(max_length=50, unique=True,
|
||||
verbose_name=_('Collection slug'), editable=True, null=True)
|
||||
|
||||
objects = CollectionQuerySet.as_manager()
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ app_name = 'collection'
|
|||
|
||||
urlpatterns = [
|
||||
path('', views.CollectionListView.as_view(), name='list'),
|
||||
path('<int:pk>/establishments/', views.CollectionEstablishmentListView.as_view(),
|
||||
path('<slug:slug>/establishments/', views.CollectionEstablishmentListView.as_view(),
|
||||
name='detail'),
|
||||
|
||||
path('guides/', views.GuideListView.as_view(), name='guides-list'),
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ class CollectionEstablishmentListView(CollectionListView):
|
|||
permission_classes = (permissions.AllowAny,)
|
||||
pagination_class = ProjectPageNumberPagination
|
||||
serializer_class = EstablishmentListSerializer
|
||||
lookup_field = 'slug'
|
||||
|
||||
def get_queryset(self):
|
||||
"""
|
||||
|
|
@ -47,7 +48,7 @@ class CollectionEstablishmentListView(CollectionListView):
|
|||
"""
|
||||
queryset = super(CollectionEstablishmentListView, self).get_queryset()
|
||||
# Perform the lookup filtering.
|
||||
collection = get_object_or_404(queryset, pk=self.kwargs['pk'])
|
||||
collection = get_object_or_404(queryset, slug=self.kwargs['slug'])
|
||||
|
||||
# May raise a permission denied
|
||||
self.check_object_permissions(self.request, collection)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ from django.core.exceptions import ValidationError
|
|||
from django.db import models
|
||||
from django.utils import timezone
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django_extensions.db.fields import AutoSlugField
|
||||
from phonenumber_field.modelfields import PhoneNumberField
|
||||
|
||||
from location.models import Address
|
||||
|
|
@ -278,7 +277,7 @@ class Establishment(ProjectBaseMixin, URLImageMixin, TranslatedFieldsMixin):
|
|||
verbose_name=_('Collections'))
|
||||
preview_image_url = models.URLField(verbose_name=_('Preview image URL path'),
|
||||
blank=True, null=True, default=None)
|
||||
slug = AutoSlugField(db_index=True, max_length=50, populate_from=['name'],
|
||||
slug = models.SlugField(unique=True, max_length=50, null=True,
|
||||
verbose_name=_('Establishment slug'), editable=True)
|
||||
|
||||
awards = generic.GenericRelation(to='main.Award')
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ class EstablishmentListCreateSerializer(EstablishmentBaseSerializer):
|
|||
phones = ContactPhonesSerializer(read_only=True, many=True, )
|
||||
emails = ContactEmailsSerializer(read_only=True, many=True, )
|
||||
socials = SocialNetworkRelatedSerializers(read_only=True, many=True, )
|
||||
slug = serializers.SlugField(allow_blank=True)
|
||||
slug = serializers.SlugField(required=True, allow_blank=False)
|
||||
|
||||
class Meta:
|
||||
model = models.Establishment
|
||||
|
|
|
|||
|
|
@ -146,7 +146,7 @@ class EstablishmentBaseSerializer(serializers.ModelSerializer):
|
|||
subtypes = EstablishmentSubTypeSerializer(many=True)
|
||||
address = AddressSerializer()
|
||||
tags = MetaDataContentSerializer(many=True)
|
||||
slug = serializers.SlugField(allow_blank=True)
|
||||
slug = serializers.SlugField(allow_blank=False, required=True)
|
||||
|
||||
class Meta:
|
||||
"""Meta class."""
|
||||
|
|
@ -199,7 +199,7 @@ class EstablishmentDetailSerializer(EstablishmentListSerializer):
|
|||
best_price_menu = serializers.DecimalField(max_digits=14, decimal_places=2, read_only=True)
|
||||
best_price_carte = serializers.DecimalField(max_digits=14, decimal_places=2, read_only=True)
|
||||
|
||||
slug = serializers.SlugField(read_only=True)
|
||||
slug = serializers.SlugField(required=True, allow_blank=False,)
|
||||
|
||||
in_favorites = serializers.SerializerMethodField()
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ from django.db import models
|
|||
from django.contrib.contenttypes import fields as generic
|
||||
from django.utils import timezone
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django_extensions.db.fields import AutoSlugField
|
||||
from rest_framework.reverse import reverse
|
||||
from utils.models import BaseAttributes, TJSONField, TranslatedFieldsMixin
|
||||
|
||||
|
|
@ -68,7 +67,7 @@ class News(BaseAttributes, TranslatedFieldsMixin):
|
|||
start = models.DateTimeField(verbose_name=_('Start'))
|
||||
end = models.DateTimeField(blank=True, null=True, default=None,
|
||||
verbose_name=_('End'))
|
||||
slug = AutoSlugField(db_index=True, max_length=50, populate_from=['title'],
|
||||
slug = models.SlugField(unique=True, max_length=50, null=True,
|
||||
verbose_name=_('News slug'), editable=True,)
|
||||
playlist = models.IntegerField(_('playlist'))
|
||||
is_publish = models.BooleanField(default=False,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user