我的老工人問題通過PIP安裝Pinax和它安裝在站點包。所有的應用程序都在那裏。我們自己的應用程序在我們的Django項目結構中。有關擴展任何Django應用程序
我想通過將create_user
的is_active
標誌切換爲False來修改Pinax的帳戶應用程序。目前,該應用使其成爲True
。我也想添加額外的功能create_user
或任何我想要做的功能。
from pinax.account import forms
class MyCustomizeForm(forms.SignupForm):
def create_user(....):
super(....)
// additional...
也許這樣? 但是,這不需要我至少執行兩次與數據庫交互的提交事務嗎?
是不是最好?另外,這樣做是否需要我在我的Django項目中更改其他任何內容(用戶註冊的方式,它使用的視圖...使用什麼形式)?
目前,我有一個應用程序住在我的Django項目設對付account
應用程序的擴展/定製。我無法將站點包提交到VCS ....我的意思是......我不應該在那裏做任何更改。
謝謝。
Pinax帳戶/ models.py
class Account(models.Model):
...
def its_own_method(...)
# this is in the same indentation level as class Account
def create_account(sender, instance=None, **kwargs):
if instance is None:
return
account, created = Account.objects.get_or_create(user=instance)
post_save.connect(create_account, sender=User)
感謝。你是說自定義動作會在'save()'實際被調用之前執行,還是在它完成之前執行直到最後一行? – User007 2012-07-11 18:25:33
pre_save信號將爲您提供即將保存的模型實例。您有機會在該信號處理程序的上下文中對其進行修改。您不需要在該處理程序中調用保存。它即將被保存,並且一旦它完成了所有pre_save信號。 – jdi 2012-07-11 18:58:31
謝謝。但是執行'pre_save.connect(make_inactive,sender = User)'意味着只要'User'模型正在保存,它就會觸發'make_inactive'函數。我用Pinax賬戶的信號更新了我的帖子。我該怎麼做呢? – User007 2012-07-11 19:28:54