is_main signal
This commit is contained in:
@@ -4,4 +4,6 @@ from django.apps import AppConfig
|
|||||||
class AccountConfig(AppConfig):
|
class AccountConfig(AppConfig):
|
||||||
default_auto_field = 'django.db.models.BigAutoField'
|
default_auto_field = 'django.db.models.BigAutoField'
|
||||||
name = 'account'
|
name = 'account'
|
||||||
verbose_name = 'اکانت'
|
verbose_name = 'اکانت'
|
||||||
|
def ready(self):
|
||||||
|
import account.signals
|
||||||
@@ -129,7 +129,7 @@ class UserAddressModel(models.Model):
|
|||||||
city = models.CharField(max_length=30, verbose_name='شهر')
|
city = models.CharField(max_length=30, verbose_name='شهر')
|
||||||
province = models.CharField(max_length=30, verbose_name='استان')
|
province = models.CharField(max_length=30, verbose_name='استان')
|
||||||
for_me = models.BooleanField(default=False, 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):
|
def __str__(self):
|
||||||
return f"{self.user.phone}, {self.name}"
|
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