Skip to content

Commit 3a221b7

Browse files
committed
fix: исправлено по pep8
1 parent e013480 commit 3a221b7

10 files changed

Lines changed: 194 additions & 118 deletions

File tree

backend/cats/apps.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22

33

44
class CatsConfig(AppConfig):
5-
default_auto_field = 'django.db.models.BigAutoField'
6-
name = 'cats'
5+
default_auto_field = "django.db.models.BigAutoField"
6+
name = "cats"

backend/cats/migrations/0001_initial.py

Lines changed: 66 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,34 +16,83 @@ class Migration(migrations.Migration):
1616

1717
operations = [
1818
migrations.CreateModel(
19-
name='Achievement',
19+
name="Achievement",
2020
fields=[
21-
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
22-
('name', models.CharField(max_length=64)),
21+
(
22+
"id",
23+
models.BigAutoField(
24+
auto_created=True,
25+
primary_key=True,
26+
serialize=False,
27+
verbose_name="ID",
28+
),
29+
),
30+
("name", models.CharField(max_length=64)),
2331
],
2432
),
2533
migrations.CreateModel(
26-
name='AchievementCat',
34+
name="AchievementCat",
2735
fields=[
28-
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
29-
('achievement', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cats.achievement')),
36+
(
37+
"id",
38+
models.BigAutoField(
39+
auto_created=True,
40+
primary_key=True,
41+
serialize=False,
42+
verbose_name="ID",
43+
),
44+
),
45+
(
46+
"achievement",
47+
models.ForeignKey(
48+
on_delete=django.db.models.deletion.CASCADE,
49+
to="cats.achievement",
50+
),
51+
),
3052
],
3153
),
3254
migrations.CreateModel(
33-
name='Cat',
55+
name="Cat",
3456
fields=[
35-
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
36-
('name', models.CharField(max_length=16)),
37-
('color', models.CharField(max_length=16)),
38-
('birth_year', models.IntegerField()),
39-
('image', models.ImageField(default=None, null=True, upload_to='cats/images/')),
40-
('achievements', models.ManyToManyField(through='cats.AchievementCat', to='cats.Achievement')),
41-
('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cats', to=settings.AUTH_USER_MODEL)),
57+
(
58+
"id",
59+
models.BigAutoField(
60+
auto_created=True,
61+
primary_key=True,
62+
serialize=False,
63+
verbose_name="ID",
64+
),
65+
),
66+
("name", models.CharField(max_length=16)),
67+
("color", models.CharField(max_length=16)),
68+
("birth_year", models.IntegerField()),
69+
(
70+
"image",
71+
models.ImageField(
72+
default=None, null=True, upload_to="cats/images/"
73+
),
74+
),
75+
(
76+
"achievements",
77+
models.ManyToManyField(
78+
through="cats.AchievementCat", to="cats.Achievement"
79+
),
80+
),
81+
(
82+
"owner",
83+
models.ForeignKey(
84+
on_delete=django.db.models.deletion.CASCADE,
85+
related_name="cats",
86+
to=settings.AUTH_USER_MODEL,
87+
),
88+
),
4289
],
4390
),
4491
migrations.AddField(
45-
model_name='achievementcat',
46-
name='cat',
47-
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cats.cat'),
92+
model_name="achievementcat",
93+
name="cat",
94+
field=models.ForeignKey(
95+
on_delete=django.db.models.deletion.CASCADE, to="cats.cat"
96+
),
4897
),
4998
]

backend/cats/models.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,13 @@ class Cat(models.Model):
1616
color = models.CharField(max_length=16)
1717
birth_year = models.IntegerField()
1818
owner = models.ForeignKey(
19-
User, related_name='cats',
20-
on_delete=models.CASCADE
19+
User, related_name="cats", on_delete=models.CASCADE
20+
)
21+
achievements = models.ManyToManyField(
22+
Achievement, through="AchievementCat"
2123
)
22-
achievements = models.ManyToManyField(Achievement,
23-
through='AchievementCat')
2424
image = models.ImageField(
25-
upload_to='cats/images/',
26-
null=True,
27-
default=None
25+
upload_to="cats/images/", null=True, default=None
2826
)
2927

3028
def __str__(self):
@@ -36,4 +34,4 @@ class AchievementCat(models.Model):
3634
cat = models.ForeignKey(Cat, on_delete=models.CASCADE)
3735

3836
def __str__(self):
39-
return f'{self.achievement} {self.cat}'
37+
return f"{self.achievement} {self.cat}"

backend/cats/serializers.py

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,25 @@ def to_internal_value(self, data):
1616
try:
1717
data = webcolors.hex_to_name(data)
1818
except ValueError:
19-
raise serializers.ValidationError('Для этого цвета нет имени')
19+
raise serializers.ValidationError("Для этого цвета нет имени")
2020
return data
2121

2222

2323
class AchievementSerializer(serializers.ModelSerializer):
24-
achievement_name = serializers.CharField(source='name')
24+
achievement_name = serializers.CharField(source="name")
2525

2626
class Meta:
2727
model = Achievement
28-
fields = ('id', 'achievement_name')
28+
fields = ("id", "achievement_name")
2929

3030

3131
class Base64ImageField(serializers.ImageField):
3232
def to_internal_value(self, data):
33-
if isinstance(data, str) and data.startswith('data:image'):
34-
format, imgstr = data.split(';base64,')
35-
ext = format.split('/')[-1]
33+
if isinstance(data, str) and data.startswith("data:image"):
34+
format, imgstr = data.split(";base64,")
35+
ext = format.split("/")[-1]
3636

37-
data = ContentFile(base64.b64decode(imgstr), name='temp.' + ext)
37+
data = ContentFile(base64.b64decode(imgstr), name="temp." + ext)
3838

3939
return super().to_internal_value(data)
4040

@@ -45,17 +45,24 @@ class CatSerializer(serializers.ModelSerializer):
4545
age = serializers.SerializerMethodField()
4646
image = Base64ImageField(required=False, allow_null=True)
4747
image_url = serializers.SerializerMethodField(
48-
'get_image_url',
48+
"get_image_url",
4949
read_only=True,
5050
)
5151

5252
class Meta:
5353
model = Cat
5454
fields = (
55-
'id', 'name', 'color', 'birth_year', 'achievements',
56-
'owner', 'age', 'image', 'image_url'
55+
"id",
56+
"name",
57+
"color",
58+
"birth_year",
59+
"achievements",
60+
"owner",
61+
"age",
62+
"image",
63+
"image_url",
5764
)
58-
read_only_fields = ('owner',)
65+
read_only_fields = ("owner",)
5966

6067
def get_image_url(self, obj):
6168
if obj.image:
@@ -66,10 +73,10 @@ def get_age(self, obj):
6673
return dt.datetime.now().year - obj.birth_year
6774

6875
def create(self, validated_data):
69-
if 'achievements' not in self.initial_data:
76+
if "achievements" not in self.initial_data:
7077
cat = Cat.objects.create(**validated_data)
7178
return cat
72-
achievements = validated_data.pop('achievements')
79+
achievements = validated_data.pop("achievements")
7380
cat = Cat.objects.create(**validated_data)
7481
for achievement in achievements:
7582
current_achievement, status = Achievement.objects.get_or_create(
@@ -81,18 +88,18 @@ def create(self, validated_data):
8188
return cat
8289

8390
def update(self, instance, validated_data):
84-
instance.name = validated_data.get('name', instance.name)
85-
instance.color = validated_data.get('color', instance.color)
91+
instance.name = validated_data.get("name", instance.name)
92+
instance.color = validated_data.get("color", instance.color)
8693
instance.birth_year = validated_data.get(
87-
'birth_year', instance.birth_year
94+
"birth_year", instance.birth_year
8895
)
89-
instance.image = validated_data.get('image', instance.image)
96+
instance.image = validated_data.get("image", instance.image)
9097

91-
if 'achievements' not in validated_data:
98+
if "achievements" not in validated_data:
9299
instance.save()
93100
return instance
94101

95-
achievements_data = validated_data.pop('achievements')
102+
achievements_data = validated_data.pop("achievements")
96103
lst = []
97104
for achievement in achievements_data:
98105
current_achievement, status = Achievement.objects.get_or_create(

backend/cats/tests.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
class CatsAPITestCase(TestCase):
99
def setUp(self):
1010
User = get_user_model()
11-
self.user = User.objects.create_user(username='auth_user')
11+
self.user = User.objects.create_user(username="auth_user")
1212
self.client = APIClient()
1313
self.client.force_authenticate(user=self.user)
1414

1515
def test_list_exists(self):
1616
"""Проверка доступности списка задач."""
17-
response = self.client.get('/api/cats/')
17+
response = self.client.get("/api/cats/")
1818
self.assertEqual(response.status_code, HTTPStatus.OK)

backend/kittygram_backend/asgi.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111

1212
from django.core.asgi import get_asgi_application
1313

14-
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'kittygram_backend.settings')
14+
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kittygram_backend.settings")
1515

1616
application = get_asgi_application()

0 commit comments

Comments
 (0)