0
我正在嘗試創建一個簡單的應用程序。它具有以下型號:Django:用戶的數據無權
型號:產品
class Product(models.Model):
product_owner = models.ForeignKey(User, verbose_name='User')
product_title = models.CharField(max_length=100, null=False,
verbose_name='Product title')
product_description = models.TextField(max_length=250, verbose_name='Product description')
product_qty = models.IntegerField(verbose_name='Quantity')
product_mrp = models.DecimalField(max_digits=12, decimal_places=2, verbose_name='Maximum retail price')
product_sku = models.CharField(max_length=100, null=False, unique=True, verbose_name='SKU',help_text='Enter Product Stock Keeping Unit')
product_barcode = models.CharField(max_length=100, null=False, verbose_name='Barcode')
我只使用內置的管理員應用的Django框架提供。通過在管理員類中添加以下內容,我可以僅爲相應用戶提供產品數據。
class ProductAdmin(ImportExportModelAdmin):
exclude = ('product_owner',)
list_display = ['product_title','product_description', 'product_qty',
'product_mrp','product_sku','product_barcode']
search_fields = ['product_title', 'product_description', 'product_sku',
'product_barcode']
ordering = ['id']
list_display_links = ['product_title']
def get_queryset(self, request):
if request.user.is_superuser:
return Product.objects.all()
return Product.objects.filter(product_owner=request.user)
def save_model(self, request, obj, form, change):
if not change:
obj.product_owner = request.user
obj.save()
當我剛開始試驗時,我添加了2個用戶User1和User2。 對於用戶1我添加了10個產品。然後我登錄進來,User2和User2看不到User1添加的產品。
現在,當我爲用戶2添加產品時,如果在唯一字段的product_sku字段中存在衝突,我根本無法添加產品。
如何解決這個問題。我需要每個用戶添加他自己的產品,但product_sku對他的產品數據集是唯一的,而不是整個數據庫。