python - 如何将请求/用户传递给 Django 模型

标签 python django

这是我的模型:

class Exam(BaseModel):
    ...
    STATE_CHOICES = (
        (PASS, PASS),
        (FAILED, FAILED),
        (GREAT, GREAT),
    state = models.CharField(max_length=15, choices=STATE_CHOICES, default=PASS)
    ...

        def save(self, *args, **kwargs):
            request = kwargs.get('request', None)
            print(f'user {request.user} saved the model')
            super().save(*args, **kwargs)

    ...

这是我的管理模型,我覆盖了 save_model 方法以将请求传递给我的模型:

@admin.register(Exam)
class ExamModelAdmin(admin.ModelAdmin):
    ...
    fields = ('state',)
    list_display = ('state',)
    form = ExamForm
    ...

    def save_model(self, request, obj, form, change):
        obj.save(request=request)

但是我得到一个错误:

save() got an unexpected keyword argument 'request'

Django = 3.2

最佳答案

这将需要覆盖/修改模型的 save() 方法,例如:

class Exam(models.Model):
    ...
    def save(self, *args, **kwargs):
        request = kwargs.pop('request', None)
        # print(f'user {request.user} saved the model')
        ...
        super().save(*args, **kwargs)

关于python - 如何将请求/用户传递给 Django 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73462281/

相关文章:

python - 给定包含 "triplets"RGB 值的 2D numpy arrayMatrix,如何生成图像?

python - 需要建议 - Python 中的网络 - 一个好主意?

python - django上下文语法错误

javascript - django-ckeditor:在哪里存储 config.js?

django - 其余框架swagger 'AutoSchema'对象没有属性get_link

python - Django - 如何在基于类的 View 方法中使用装饰器?

django - 如何将 ModelForm 与 neo4django 一起使用?

python - 求字符串中的乘积之和

python - 如何在另一个已保存的文件上显示图形? (Python)

django - heroku PostGIS 同步数据库错误