我有一个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”的产品
注意:我想保留自己的原始管理空间,但我会做一个单独的网址,使网站没有链接到它
1条答案
按热度按时间v9tzhpje1#
我在django管理员中了解到一种方法
get_queryset(self, request)
在使用onetoone关系扩展用户模型之后,我可以将位置与用户关联,并使用request对象查看用户的位置,并使用get_queryset方法调整queryset以匹配位置