我希望我的应用的每个模型都能存储创建其条目的用户。我所做的:模型上的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