如何限制在django管理空间中呈现哪些数据库对象

8mmmxcuj  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(302)

我有一个django应用程序,用于跟踪我公司的产品库存。
此后,我们已扩展到多个地点。
现在我的目标是创建多个管理空间,其中显示的产品受产品位置的限制。
我还没有找到任何关于最好的方法的好资源。如有任何建议,将不胜感激!
models.py

class dboinv_product(models.Model):
    pk_product_id = models.UUIDField(
        default = uuid.uuid4,
        primary_key=True,
        null=False
    )
    product_creation_time = models.DateTimeField(
        auto_now_add=True,
        null=True
    )
    product_name = models.CharField(
        max_length=50,
        null=False
    )
    product_description = models.CharField(
        max_length=500,
        null=True
    )
    current_cost = models.DecimalField(
        max_digits=5,
        decimal_places=2,
        null = True
    )
    current_qty = models.IntegerField(
        null=False
    )
    obsolete = models.BooleanField(
        null=True
    )
    fk_location_name = models.ForeignKey(
        dboinv_location,
        verbose_name="Location name",
        default='Boston',
        on_delete=models.CASCADE,
        null=True,
        blank=True
    )

管理员

@admin.register(dboinv_product)
class dboinv_productAdmin(admin.ModelAdmin):
    form = CreateProductForm
pass

例如,如果用户要转到“boston/admin”,他们应该只能看到“fk_location_name”=“boston”的产品
注意:我想保留自己的原始管理空间,但我会做一个单独的网址,使网站没有链接到它

v9tzhpje

v9tzhpje1#

我在django管理员中了解到一种方法 get_queryset(self, request) 在使用onetoone关系扩展用户模型之后,我可以将位置与用户关联,并使用request对象查看用户的位置,并使用get_queryset方法调整queryset以匹配位置

相关问题