API for venue views

This commit is contained in:
Corban-Lee Jones 2024-11-06 23:13:55 +00:00
parent 6a3bb974b9
commit 0aa53a8080
6 changed files with 60 additions and 49 deletions

View File

@ -1,27 +1,28 @@
from rest_framework import serializers
# from mainapp.models import Venue
"""Serializers for the API app."""
from rest_framework import serializers
from apps.home import models
class VenueAddressSerializer(serializers.ModelSerializer):
class Meta:
model = models.VenueAddress
exclude = []
class VenueContactsSerializer(serializers.ModelSerializer):
class Meta:
model = models.VenueContacts
exclude = []
class VenueSerializer(serializers.ModelSerializer):
address = VenueAddressSerializer()
contacts = VenueContactsSerializer()
class Meta:
model = models.Venue
exclude = []
# class VenueSerializer(serializers.ModelSerializer):
# class Meta:
# model = Venue
# fields = (
# "pk",
# "name",
# "description",
# "extra_notes",
# "venue_type",
# "phone_number",
# "email_address",
# "website_url",
# "street_address",
# "city",
# "provence",
# "postal_code",
# "country",
# "latitude",
# "longitude",
# "twitter_url",
# "instagram_url",
# "facebook_url",
# "active",
# )

View File

@ -1,9 +1,14 @@
from django.urls import path, include
# from .views import VenueListView, VenueDetailView
"""URLs for the API app."""
# urlpatterns = [
# path('venue/', include([
# path("", VenueListView.as_view()),
# path("<int:pk>/", VenueDetailView.as_view())
# ]))
# ]
from django.urls import path, include
from . import views
app_name = "api"
urlpatterns = [
path("venues/", include([
path("", views.VenueListView.as_view(), name="venues"),
path("<int:pk>/", views.VenueDetailsView.as_view(), name="venue-detail")
]))
]

View File

@ -1,14 +1,16 @@
"""Views for the API app."""
from django.shortcuts import render
from rest_framework import generics
# from .serializers import VenueSerializer
# from mainapp.models import Venue
# Create your views here.
from .serializers import VenueSerializer
from apps.home import models
# class VenueListView(generics.ListCreateAPIView):
# serializer_class = VenueSerializer
# queryset = Venue.objects.all().order_by("name")
# class VenueDetailView(generics.RetrieveUpdateDestroyAPIView):
# serializer_class = VenueSerializer
# queryset = Venue.objects.all().order_by("name")
class VenueListView(generics.ListCreateAPIView):
serializer_class = VenueSerializer
queryset = models.Venue.objects.all().order_by("id")
class VenueDetailsView(generics.RetrieveUpdateDestroyAPIView):
serializer_class = VenueSerializer
queryset = models.Venue.objects.all().order_by("id")

View File

@ -4,6 +4,8 @@ from django.urls import path
from . import views
app_name = "home"
urlpatterns = [
path("", views.IndexView.as_view(), name="index"),
path("venues", views.VenueWatersView.as_view(), name="venues-waters"),

View File

@ -196,11 +196,12 @@ REST_FRAMEWORK = {
"user": "10000/hour"
},
"DEFAULT_RENDERER_CLASSES": [
"apps.api.renderers.FixedJSONRenderer",
"rest_framework.renderers.JSONRenderer",
# "rest_framework.renderers.AdminRenderer",
"rest_framework.renderers.BrowsableAPIRenderer"
],
"EXCEPTION_HANDLER": "apps.api.exceptions.conflict_exception_handler"
"DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.LimitOffsetPagination",
"PAGE_SIZE": 100
}

View File

@ -17,7 +17,7 @@ from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
# path('api/', include('api.urls')),
path('', include('apps.home.urls')),
path("admin/", admin.site.urls),
path("api/", include("apps.api.urls", namespace="api")),
path("", include("apps.home.urls", namespace="home")),
]