Python Django admin仅为登录用户保存和显示数据
在我的django管理项目中,我必须保存并显示不同用户的数据,我希望当我自动保存field user时获取登录用户值,当我重新登录时,我只能看到为我的用户保存的数据。 我有这种型号。py: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.
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