is_main signal
This commit is contained in:
@@ -5,3 +5,5 @@ class AccountConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'account'
|
||||
verbose_name = 'اکانت'
|
||||
def ready(self):
|
||||
import account.signals
|
||||
@@ -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}"
|
||||
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user