fix: blank=True en las patas de Transfer

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
JKuijperM 2026-09-22 08:52:29 +02:00
parent 488e370a04
commit d37cf0800d
2 changed files with 38 additions and 2 deletions

View File

@ -0,0 +1,24 @@
# Generated by Django 5.2.10 on 2026-09-21 13:35
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('expenses', '0015_link_legacy_transfers'),
]
operations = [
migrations.AlterField(
model_name='transfer',
name='expense_leg',
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='transfer_out', to='expenses.expense'),
),
migrations.AlterField(
model_name='transfer',
name='income_leg',
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='transfer_in', to='expenses.income'),
),
]

View File

@ -356,11 +356,23 @@ class Transfer(models.Model):
# Las dos patas y la comisión opcional. SET_NULL para que si algo las borra # Las dos patas y la comisión opcional. SET_NULL para que si algo las borra
# por fuera el Transfer no arrastre, pero el flujo normal las borra en cascada # por fuera el Transfer no arrastre, pero el flujo normal las borra en cascada
# desde el propio Transfer (ver delete()). # desde el propio Transfer (ver delete()).
#
# blank=True porque un traspaso siempre acaba con sus dos patas, pero no las
# tiene en el instante en que se construye: sync() las crea a partir de él.
# Exigirlas en full_clean() describiría mal ese momento.
expense_leg = models.OneToOneField( expense_leg = models.OneToOneField(
Expense, on_delete=models.SET_NULL, null=True, related_name="transfer_out" Expense,
on_delete=models.SET_NULL,
null=True,
blank=True,
related_name="transfer_out",
) )
income_leg = models.OneToOneField( income_leg = models.OneToOneField(
Income, on_delete=models.SET_NULL, null=True, related_name="transfer_in" Income,
on_delete=models.SET_NULL,
null=True,
blank=True,
related_name="transfer_in",
) )
fee_amount = models.DecimalField( fee_amount = models.DecimalField(