我设置了模型,以便在将酒添加到商店时,它会根据计数为其提供自己的店内 ID。我称其为 SPI。加法功能工作正常,它正确分配了正确的 SPI。但是我在删除功能上遇到了麻烦。当从表中删除一个对象时,我需要它遍历剩余的对象并将它们的 SPI 设置为少一个。但是我不断收到错误StoreLiquor matching query does not exist. Lookup parameters were {'StoreLiquorID': 7, 'storeID': <Store: test store>}
我没有正确执行查询吗?
型号:
class Store(models.Model):
StoreID = models.AutoField(primary_key=True)
user = models.ManyToManyField(User)
StoreName = models.CharField('Store Name', max_length=30)
(other things here too but probably not necessary for this case)
class StoreLiquor(models.Model):
StoreLiquorID = models.AutoField(primary_key=True)
liquorID = models.ForeignKey(Liquor)
storeID = models.ForeignKey(Store)
StorePrice = models.DecimalField('Store Price', max_digits=5, decimal_places=2)
SPI = models.PositiveIntegerField('SPI', max_length=10)
风景:
def delete(request, liquor_id, store_id):
storeID = Store.objects.get(StoreID=store_id)
StLiquor = StoreLiquor.objects.get(storeID=store_id, StoreLiquorID=liquor_id)
LiqSPI = StLiquor.SPI
SPIcount = StoreLiquor.objects.filter(storeID=store_id).count()
for newSPI in range(LiqSPI, SPIcount):
newStLiquor = StoreLiquor.objects.get(storeID=storeID, StoreLiquorID=newSPI)
newStLiquor.SPI = newSPI-1
StLiquor.delete()
return HttpResponseRedirect(request.META.get('HTTP_REFERER'))