DJANGO - 管理员操作

DJANGO - Admin Action

我想为汽车经销商创建一个网站,并允许经销商添加、编辑、删除汽车。

我的问题是,在 Django Admin 上,当我使用任何帐户登录时,我会看到所有汽车,我只想显示连接到经销商的汽车。

我创建了一个模型

from django.db import models
from django.contrib.auth.models import User
import datetime
from brand.models import Brands
from django.urls import reverse

class Car(models.Model):
 dealer = models.ForeignKey(User, on_delete=models.DO_NOTHING)
 brand = models.ForeignKey(Brands, on_delete=models.DO_NOTHING)
 carname = models.CharField(max_length=100)
 def __str__(self):
 return '%s %s' % (self.brand, self.carname)

此外,当我创建汽车时,经销商列表会显示数据库中的所有经销商,但我只想显示关联的帐户名称。

感谢您的帮助

在 Django Admin 中 class 你可以定义 has_view_permission 方法 https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.has_view_permission

例如:

class CarAdmin(admin.ModelAdmin):
    def has_view_permission(request, obj=None):
        if request.user == obj.dealer:
            return True
        else:
            return False