Python Django admin仅为登录用户保存和显示数据

Python Django admin仅为登录用户保存和显示数据,python,django,django-admin,Python,Django,Django Admin,在我的django管理项目中,我必须保存并显示不同用户的数据,我希望当我自动保存field user时获取登录用户值,当我重新登录时,我只能看到为我的用户保存的数据。 我有这种型号。py: class TheLinks(models.Model): lk_name = models.CharField(max_length=20) def __str__(self): return self.lk_name class UserComLinks(models.

在我的django管理项目中,我必须保存并显示不同用户的数据,我希望当我自动保存field user时获取登录用户值,当我重新登录时,我只能看到为我的用户保存的数据。 我有这种型号。py:

class TheLinks(models.Model):
    lk_name = models.CharField(max_length=20)

    def __str__(self):
        return self.lk_name

class UserComLinks(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="User")
    l_id = models.ForeignKey(TheLinks, on_delete=models.CASCADE, verbose_name="Portal")
    l_link = models.CharField(max_length=100)

    def __str__(self):
        return str(self.l_id)
现在,如果我运行django管理员,我会看到以下表单:

首先,我想隐藏用户名字段,让我的模型使用当前登录用户自动保存这些数据,然后我想当用户登录时,只能看到hos数据。 我尝试以这种方式管理admin.py:

管理员

class UserComLinksAdmin(admin.ModelAdmin):

list_display = ('l_id',  'l_link')

def changeform_view(self, request, obj_id, form_url, extra_context=None):

        try:
            l_mod = UserComLink.objects.latest('id')
        except Exception:
            l_mod = None

        extra_context = {
            'lmod': l_mod,
        }
        return super(UserComLinksAdmin, self).changeform_view(request, obj_id, form_url, extra_context=extra_context)
但一切都没有改变

有人能帮我一下吗

非常感谢您提前

您可以从管理表单中排除
用户
字段,并在保存前设置当前用户的值:

class UserComLinksAdmin(admin.ModelAdmin):
    list_display = ('l_id',  'l_link')
    exclude = ('user',)

    def save_form(self, request, form, change):
        obj = super().save_form(request, form, change)
        if not change:
            obj.user = request.user
        return obj