Skip to content

Commit 6ccbbbd

Browse files
committed
Convert ERD into Django models
1 parent 59643b7 commit 6ccbbbd

56 files changed

Lines changed: 577 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

server/advertising/__init__.py

Whitespace-only changes.

server/advertising/admin.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.contrib import admin
2+
3+
# Register your models here.

server/advertising/apps.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from django.apps import AppConfig
2+
3+
4+
class AdvertisingConfig(AppConfig):
5+
default_auto_field = 'django.db.models.BigAutoField'
6+
name = 'advertising'
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Generated by Django 5.2.8 on 2025-12-05 11:38
2+
3+
import django.db.models.deletion
4+
from django.conf import settings
5+
from django.db import migrations, models
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
initial = True
11+
12+
dependencies = [
13+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
14+
]
15+
16+
operations = [
17+
migrations.CreateModel(
18+
name='Advertising',
19+
fields=[
20+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
21+
('promotion_price', models.DecimalField(decimal_places=2, max_digits=10)),
22+
('ad_content', models.TextField()),
23+
('created_at', models.DateTimeField(auto_now_add=True)),
24+
('manager', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='advertised_events', to=settings.AUTH_USER_MODEL)),
25+
],
26+
),
27+
]

server/advertising/migrations/__init__.py

Whitespace-only changes.

server/advertising/models.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from django.db import models
2+
from django.contrib.auth import get_user_model
3+
4+
# Create your models here.
5+
6+
User = get_user_model()
7+
8+
class Advertising(models.Model):
9+
manager = models.ForeignKey(User, on_delete=models.CASCADE, related_name="advertised_events")
10+
promotion_price = models.DecimalField(max_digits=10, decimal_places=2)
11+
ad_content = models.TextField(null=False, blank=False)
12+
created_at = models.DateTimeField(auto_now_add=True)
13+
14+
def __str__(self):
15+
return f"Promoted by {self.manager.username} at ${self.promotion_price}"

server/advertising/serializers.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from rest_framework import serializers
2+
from .models import Advertising
3+
from user.serializers import UserSerializer
4+
5+
6+
class AdvertisingSerializer(serializers.ModelSerializer):
7+
manager = UserSerializer(read_only=True)
8+
9+
class Meta:
10+
model = Advertising
11+
fields = ("id", "manager", "promotion_price", "ad_content", "created_at" )
12+
read_only_fields = ("created_at",)

server/advertising/tests.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.test import TestCase
2+
3+
# Create your tests here.

server/advertising/urls.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from django.urls import path
2+
from . import views
3+
4+
app_name = "advertising"
5+
urlpatterns = [
6+
path("", views.AdvertisingList.as_view(), name="advertising-list"),
7+
]
8+

server/advertising/views.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from django.shortcuts import render
2+
from rest_framework import generics, permissions
3+
4+
5+
from .models import Advertising
6+
from .serializers import AdvertisingSerializer
7+
8+
# Create your views here.
9+
10+
class AdvertisingList(generics.ListCreateAPIView):
11+
queryset = Advertising.objects.all()
12+
serializer_class = AdvertisingSerializer
13+
permission_classes = [permissions.IsAuthenticated]

0 commit comments

Comments
 (0)