cue
2024-04-02 21:51:03 +03:00
8 changed files with 30 additions and 71 deletions
@@ -1,6 +1,7 @@
# Generated by Django 4.2.11 on 2024-04-02 00:08 # Generated by Django 4.2.11 on 2024-04-02 17:05
from django.db import migrations, models from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration): class Migration(migrations.Migration):
@@ -9,6 +10,7 @@ class Migration(migrations.Migration):
dependencies = [ dependencies = [
('users', '0001_initial'), ('users', '0001_initial'),
('tree', '0001_initial'),
] ]
operations = [ operations = [
@@ -19,6 +21,13 @@ class Migration(migrations.Migration):
('created_at', models.DateTimeField(auto_now_add=True)), ('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)), ('updated_at', models.DateTimeField(auto_now=True)),
('title', models.CharField(max_length=255)), ('title', models.CharField(max_length=255)),
('start_date', models.DateField(blank=True, null=True)),
('end_date', models.DateField(blank=True, null=True)),
('description', models.TextField(default='')),
('is_online', models.BooleanField(default=True, verbose_name='оффлайн или онлайн')),
('location', models.CharField(default='', max_length=512)),
('limitation', models.CharField(choices=[('Everyone', 'everyone'), ('School', 'school'), ('Student', 'student'), ('Professional', 'professional')], default='everyone', max_length=64)),
('tree', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='events', to='tree.tree')),
('users', models.ManyToManyField(blank=True, related_name='events', to='users.user')), ('users', models.ManyToManyField(blank=True, related_name='events', to='users.user')),
], ],
options={ options={
@@ -1,52 +0,0 @@
# Generated by Django 4.2.11 on 2024-04-02 11:00
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("events", "0001_initial"),
]
operations = [
migrations.AddField(
model_name="event",
name="description",
field=models.TextField(default=""),
),
migrations.AddField(
model_name="event",
name="end_date",
field=models.DateField(blank=True, null=True),
),
migrations.AddField(
model_name="event",
name="is_online",
field=models.BooleanField(default=True, verbose_name="оффлайн или онлайн"),
),
migrations.AddField(
model_name="event",
name="limitation",
field=models.CharField(
choices=[
("Everyone", "everyone"),
("School", "school"),
("Student", "student"),
("Professional", "professional"),
],
default="everyone",
max_length=64,
),
),
migrations.AddField(
model_name="event",
name="location",
field=models.CharField(default="", max_length=512),
),
migrations.AddField(
model_name="event",
name="start_date",
field=models.DateField(blank=True, null=True),
),
]
+7
View File
@@ -1,6 +1,7 @@
from django.db import models from django.db import models
from api.core.models import BaseModel from api.core.models import BaseModel
from api.tree.models import Tree
class Event(BaseModel): class Event(BaseModel):
@@ -51,5 +52,11 @@ class Event(BaseModel):
default="everyone", default="everyone",
) )
tree = models.ForeignKey(
Tree,
on_delete=models.CASCADE,
related_name="events",
)
def __str__(self): def __str__(self):
return self.title return self.title
@@ -1,4 +1,4 @@
# Generated by Django 4.2.11 on 2024-04-02 08:25 # Generated by Django 4.2.11 on 2024-04-02 17:05
from django.db import migrations, models from django.db import migrations, models
@@ -7,23 +7,16 @@ class Migration(migrations.Migration):
initial = True initial = True
dependencies = [] dependencies = [
]
operations = [ operations = [
migrations.CreateModel( migrations.CreateModel(
name="Tree", name='Tree',
fields=[ fields=[
( ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
"id", ('name', models.CharField(max_length=255, unique=True)),
models.BigAutoField( ('data', models.JSONField()),
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(max_length=255, unique=True)),
("data", models.JSONField()),
], ],
), ),
] ]
@@ -1,4 +1,4 @@
# Generated by Django 4.2.11 on 2024-04-02 00:08 # Generated by Django 4.2.11 on 2024-04-02 17:05
from django.db import migrations, models from django.db import migrations, models
@@ -22,6 +22,7 @@ class Migration(migrations.Migration):
('email', models.EmailField(max_length=254)), ('email', models.EmailField(max_length=254)),
('birth_date', models.DateTimeField()), ('birth_date', models.DateTimeField()),
('bio', models.TextField()), ('bio', models.TextField()),
('skills', models.JSONField(default=dict)),
], ],
options={ options={
'abstract': False, 'abstract': False,
+1
View File
@@ -9,6 +9,7 @@ class User(BaseModel):
email = models.EmailField() email = models.EmailField()
birth_date = models.DateTimeField() birth_date = models.DateTimeField()
bio = models.TextField() bio = models.TextField()
skills = models.JSONField(default=dict)
def __str__(self): def __str__(self):
return f"{self.first_name} {self.last_name}" return f"{self.first_name} {self.last_name}"
+2 -2
View File
@@ -5,7 +5,7 @@ from api.users.models import User
class UserSerializer(serializers.ModelSerializer): class UserSerializer(serializers.ModelSerializer):
event_id = serializers.IntegerField() event = serializers.IntegerField(write_only=True)
class Meta: class Meta:
model = User model = User
@@ -13,7 +13,7 @@ class UserSerializer(serializers.ModelSerializer):
def create(self, validated_data): def create(self, validated_data):
try: try:
event = Event.objects.get(pk=validated_data.pop("event_id")) event = Event.objects.get(pk=validated_data.pop("event"))
except Event.DoesNotExist as e: except Event.DoesNotExist as e:
msg = "Event does not exist" msg = "Event does not exist"
raise serializers.ValidationError(msg) from e raise serializers.ValidationError(msg) from e
+1 -1
View File
@@ -12,7 +12,7 @@ DEFAULT_HOSTS = ["127.0.0.1", "localhost"]
with env.prefixed("DJANGO_"): with env.prefixed("DJANGO_"):
SECRET_KEY = env("SECRET_KEY", "change-me") SECRET_KEY = env("SECRET_KEY", "change-me")
DEBUG = env.bool("DEBUG", False) DEBUG = env.bool("DEBUG", True)
ALLOWED_HOSTS = env.list("ALLOWED_HOSTS", DEFAULT_HOSTS) ALLOWED_HOSTS = env.list("ALLOWED_HOSTS", DEFAULT_HOSTS)
INTERNAL_IPS = env.list("INTERNAL_IPS", ALLOWED_HOSTS) INTERNAL_IPS = env.list("INTERNAL_IPS", ALLOWED_HOSTS)
CSRF_TRUSTED_ORIGINS = env.list("CSRF_TRUSTED_ORIGINS", []) CSRF_TRUSTED_ORIGINS = env.list("CSRF_TRUSTED_ORIGINS", [])