亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創建一個 post_save 信號,為我創建一個配置文件對象

創建一個 post_save 信號,為我創建一個配置文件對象

萬千封印 2023-08-22 10:40:47
下午好,我的用戶模型中有以下信號,但在創建用戶時它沒有創建配置文件對象,這是我做錯的。  def create_profile(sender, instance, created, **kwargs):    if created:        Profile.objects.create(user=instance)def save_profile(sender, instance, **kwargs):    instance.create_profile.save()post_save.connect(create_profile, sender=User)post_save.connect(save_profile, sender=User)
查看完整描述

2 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

創建一個 signal.py 文件,然后在其中添加以下代碼:


from django.contrib.auth.models import User

from django.db.models.signals import post_save

from django.dispatch import receiver

from .models import Profile



@receiver(post_save, sender=User)

def create_profile(sender, instance, created, **kwargs):

    if created:

        Profile.objects.create(user=instance)



@receiver(post_save, sender=User)

def save_profile(sender, instance, **kwargs):

    instance.profile.save()

然后在您的用戶 apps.py 中添加以下代碼:


class UsersConfig(AppConfig):

name = 'users'


    def ready(self):

        import users.signals

那么你就完成了!


查看完整回答
反對 回復 2023-08-22
?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

假設您有一個名為“profiles”的應用程序profiles/signals.py


from django.contrib.auth.models import User

from django.db.models.signals import post_save

from django.dispatch import receiver


from profiles.models import Profile


@receiver(post_save, sender=User)

def create_user_profile(sender, instance, created, **kwargs):

    if created:

        Profile.objects.create(user=instance)


@receiver(post_save, sender=User)

def save_user_profile(sender, instance, **kwargs):

    instance.profile.save()

在profiles/app.py


from django.apps import AppConfig

from django.utils.translation import ugettext_lazy as _


class ProfilesConfig(AppConfig):

    name = 'cmdbox.profiles'

    verbose_name = _('profiles')


    def ready(self):

        import cmdbox.profiles.signals  # noqa

終于在profiles/__init__.py


default_app_config = 'profiles.apps.ProfilesConfig'


查看完整回答
反對 回復 2023-08-22
  • 2 回答
  • 0 關注
  • 5355 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號