【问题标题】:How to store user_id in admin of wagtail (non page model)?如何将 user_id 存储在 wagtail(非页面模型)的管理员中?
【发布时间】:2021-11-30 16:39:59
【问题描述】:

我的博客类网站中有一些如下模型,希望不同的用户可以查询自己的数据。所以,我需要在我的模型中保存用户 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?

【问题讨论】:

    标签: wagtail userid modeladmin


    【解决方案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
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我希望可以用modeladmin(wagtail_hooks.py)保存user_id,我可以用get_queryset()获取user_id,但是是否可以在表单(管理面板)的用户字段中预先填充它?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      相关资源
      最近更新 更多