0

我在我的博客网站中有一些类似下面的模型,我希望不同的用户可以查询自己的数据。所以,我需要在我的模型中保存用户 ID。

但是,wagtail 的 modeladmin 只有 get_queryset() 而没有 save_model()

class Info(Orderable):
    user = models.ForeignKey('auth.User', 
                          on_delete=models.CASCADE,
                          blank=False, null=True,
                          related_name='+',)

有没有办法在 wagtail 管理面板中存储用户 ID?

4

2 回答 2

1

另一种方法是预先填充它,我尝试这样做并且效果很好。

def create_view(self, request):
    view = super().create_view(request)
    self._set_username(view, request)
    return view

def _set_username(self, view, request):
    if hasattr(view, 'context_data'):
        form = view.context_data['form']
        form.fields['name'].widget.attrs['value'] = request.user
于 2021-10-13T04:26:05.803 回答
0

如果您的意思是(来自)管理员,是的,您可以,但如果您的意思是模型类的管理面板,不,您不能,一旦请求 URL,处理请求是视图(控制器)的工作,视图评估很多东西,其中之一是 request.user,而这个是 User 模型的对象,然后您可以通过(requested.user.id)请求 id.. 当然在views.pywagtail_hooks.py

于 2021-10-12T19:50:08.693 回答