簡體   English   中英

使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM