我把一个断点放进我的控制器里 用的是:
def handle_user_save(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
EmailNotifications.objects.create(user=instance)
else:
import pdb;pdb.set_trace()
post_save.connect(handler_user_save, sender=User)
在 pdb 内 :
(Pdb) dir(instance)
[ DoesNotExist , MultipleObjectsReturned , __class__ , __delattr__ , __dict__ , __doc__ , __eq__ , __format__ , __getattribute__ , __hash__ , __init__ , __metaclass__ , __module__ , __ne__ , __new__ , __reduce__ , __reduce_ex__ , __repr__ , __setattr__ , __sizeof__ , __str__ , __subclasshook__ , __unicode__ , __weakref__ , _base_manager , _default_manager , _deferred , _get_FIELD_display , _get_next_or_previous_by_FIELD , _get_next_or_previous_in_order , _get_pk_val , _get_unique_checks , _meta , _perform_date_checks , _perform_unique_checks , _set_pk_val , _state , addressbookentry_set , blogcomment_set , blogentry_set , check_password , clean , clean_fields , date_error_message , date_joined , delete , email , email_user , emailnotifications , first_name , full_clean , get_absolute_url , get_all_permissions , get_full_name , get_group_permissions , get_next_by_date_joined , get_next_by_last_login , get_previous_by_date_joined , get_previous_by_last_login , get_profile , groups , has_module_perms , has_perm , has_perms , has_usable_password , id , is_active , is_anonymous , is_authenticated , is_staff , is_superuser , last_login , last_name , logentry_set , natural_key , objects , password , pk , prepare_database_save , project_set , save , save_base , serializable_value , set_password , set_unusable_password , unique_error_message , user_permissions , username , userprofile , validate_unique , vote_set ]
并且:
(Pdb) instance.groups.all()
[]
它似乎没有显示此点的更改 。 但最有可能的情况是这样, 因为我正在进行 db 查询以获取分组 。 还有其它地方我可以截取用户模式的更新吗?
或许其中的一个例子能给我答案呢?这些干净的方法/领域似乎都没有任何有用之处。