我希望我的應用的每個模型都能存儲創建其條目的用戶。我所做的:模型上的Django用戶字段
class SomeModel(models.Model):
# ...
user = models.ForeignKey(User, editable = False)
class SomeModelAdmin(admin.ModelAdmin):
# ...
def save_model(self, request, obj, form, change):
# Get user from request.user and fill the field if entry not existing
我的問題:由於有用戶認證和歷史一個完整的應用程序,有沒有使用這個應用程序的任何功能,而不是做上述的簡單方法(或許,更加註重或標準化)程序到每個模型?
更新:
這就是我所做的。它看起來真的很醜。請讓我知道是否有一個聰明的方法來做到這一點。
我伸出我想對這些models.py的fieds所有型號:
class ManagerLog(models.Model):
user = models.ForeignKey(User, editable = False)
mod_date = models.DateTimeField(auto_now = True, editable = False, verbose_name = 'última modificação')
class Meta:
abstract = True
在admin.py,我做了下面的類一樣:
def manager_log_save_model(self, request, obj, form, change):
obj.user = request.user
return obj
然後,我還需要重寫每個擴展模型save_model:
class ExtendedThing(ManagerLogAdmin):
# ...
def save_model(self, request, obj, form, change):
obj = manager_log_save_model(self, request, obj, form, change)
# ... other stuff I need to do here
問題編輯。 – vmassuchetto 2011-03-02 13:15:42
還是一樣的答案:D – zsquare 2011-03-02 13:24:01