Browse Source

Migrace 0084 nemá padat, ale logovat.

middleware_test
Pavel "LEdoian" Turinsky 4 years ago
parent
commit
3330fd5a9f
  1. 2
      MIGRATIONS
  2. 8
      seminar/migrations/0084_clanek_cislo.py

2
MIGRATIONS

@ -6,3 +6,5 @@ Jak zvládnout migrace na nový model:
- 2130: Definice čísel (23.6 vs 23.7) - 2130: Definice čísel (23.6 vs 23.7)
- 2143: Gravitace ve Flatlandu (23.4 vs 23.6) - 2143: Gravitace ve Flatlandu (23.4 vs 23.6)
- 1954: Chceme vodu (nepublikováno) (21.3 vs 21.6) - 1954: Chceme vodu (nepublikováno) (21.3 vs 21.6)
- V mojí verzi databáze mají úlohy-Problémy typ "b'uloha'"

8
seminar/migrations/0084_clanek_cislo.py

@ -4,6 +4,9 @@ from django.db import migrations, models
import django.db.models.deletion import django.db.models.deletion
from seminar.treelib import get_parent from seminar.treelib import get_parent
import logging
logger = logging.getLogger(__name__)
def najdi_cislo(apps, schema_editor): def najdi_cislo(apps, schema_editor):
Clanek = apps.get_model('seminar', 'Clanek') Clanek = apps.get_model('seminar', 'Clanek')
Hodnoceni = apps.get_model('seminar', 'Hodnoceni') Hodnoceni = apps.get_model('seminar', 'Hodnoceni')
@ -15,7 +18,10 @@ def najdi_cislo(apps, schema_editor):
for c in Clanek.objects.all(): for c in Clanek.objects.all():
reseni = c.reseni_set reseni = c.reseni_set
if (reseni.count() != 1): # Pozor, reseni_set je Manager, takže se na něj musí trošku jinak if (reseni.count() != 1): # Pozor, reseni_set je Manager, takže se na něj musí trošku jinak
raise ValueError("Článek k sobě má nejedno řešení!") logger.warn(f"Více než jedno řešení pro článek {c}")
c.cislo = None
c.save()
continue
r = reseni.first() r = reseni.first()
aktualniNode = r.text_cely # Hlavní ReseniNode pro řešení aktualniNode = r.text_cely # Hlavní ReseniNode pro řešení
while aktualniNode is not None: while aktualniNode is not None:

Loading…
Cancel
Save