is_main signal

This commit is contained in:
Parsa Nazer
2025-03-27 22:14:10 +03:30
parent 78ae2d2724
commit d36a073e71
3 changed files with 14 additions and 2 deletions
+2
View File
@@ -5,3 +5,5 @@ class AccountConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'account'
verbose_name = 'اکانت'
def ready(self):
import account.signals
+1 -1
View File
@@ -129,7 +129,7 @@ class UserAddressModel(models.Model):
city = models.CharField(max_length=30, verbose_name='شهر')
province = models.CharField(max_length=30, verbose_name='استان')
for_me = models.BooleanField(default=False, verbose_name='برای خود کاربر')
is_main = models.BooleanField(default=False)
is_main = models.BooleanField(default=False, verbose_name='ادرس اصلی کاربر')
def __str__(self):
return f"{self.user.phone}, {self.name}"
+10
View File
@@ -0,0 +1,10 @@
from django.db import transaction
from django.db.models.signals import post_save
from django.dispatch import receiver
from .models import UserAddressModel
@receiver(post_save, sender=UserAddressModel)
def ensure_single_main_address(sender, instance, **kwargs):
if instance.is_main:
with transaction.atomic():
UserAddressModel.objects.filter(user=instance.user).exclude(pk=instance.pk).update(is_main=False)