[英]Test a Django model that uses request.user in save_model
[英]Using save_model to save the current user
我嘗試通過在post_save中創建新對象來保存當前用戶。 有型號
class SourceHistory(models.Model):
source = models.ForeignKey(Source, verbose_name=u'Источник', null=False, blank=False)
editor = models.ForeignKey(User, verbose_name=u'Пользователь', null=True, blank=True)
並在admin.py中
@admin.register(SourceHistory)
class SourceHistoryAdmin(admin.ModelAdmin):
list_display = ('source', 'editor')
def save_model(self, request, obj, form, change):
obj.editor = request.user
obj.save()
並創建一個新對象
@receiver(post_save, sender=Source)
def source_save_history(sender, **kwargs):
source = kwargs.get('instance')
for f in source.memorized_fields:
if source.__getattribute__(f) != source.memorized_fields[f]:
sh = SourceHistory.objects.create(
source=source
)
因此,使用這種方式,新對象中的“編輯器”字段為空。 如何與當前用戶一起創建SourceHistory對象?
您無法在post_save()中執行此操作,只能在請求中確定用戶
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.