Python 在Django数据库中搜索生成的格式
在我的django应用程序中,我正在使用型号的Python 在Django数据库中搜索生成的格式,python,django,Python,Django,在我的django应用程序中,我正在使用型号的str和id以及产品的id组合创建条形码。 条形码已生成,但我遇到的问题是,当我扫描条形码时,我希望显示扫描产品的信息 我将能够更好地理解代码的问题 Models.py class GrnItems(models.Model): item = models.ForeignKey(Product, on_delete=models.CASCADE) item_quantity = models.IntegerField(default=
str
和id
以及产品的id
组合创建条形码。
条形码已生成,但我遇到的问题是,当我扫描条形码时,我希望显示扫描产品的信息
我将能够更好地理解代码的问题
Models.py
class GrnItems(models.Model):
item = models.ForeignKey(Product, on_delete=models.CASCADE)
item_quantity = models.IntegerField(default=0)
item_price = models.IntegerField(default=0)
label_name = models.CharField(max_length=25, blank=True, null=True)
class Grn(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE)
reference_no = models.CharField(max_length=500, default=0)
items = models.ManyToManyField(GrnItems)
Views.py
def PrintGRNsv1(request, pk):
grn = Grn.objects.filter(pk=pk)[0]
grn_prod = grn.items.all()
print("grn prod", grn_prod)
items = []
for i in grn_prod:
for j in range(i.item_quantity):
items.append({'bar': "YNT9299" + str(pk) +
str(i.item.pk) + str(j + 1)} )
现在让我们假设我生成了一个条形码YNT92991231
,现在我不知道如何从这个代码中获取I.item.pk
我该怎么做
附言。
好的,最重要的是,我已经为大量产品创建了条形码,它们已经放在上面了,所以现在不能真正更改条形码格式,因为我们无法更改任何内容。为您生成所有条形码
GRN
。将它们保存在文件或数据库中。只要有一个查询与这些匹配,就从那里找到它们。如果存在任何冲突(当两个或多个产品具有相同的条形码时),Django用户可以是解决冲突的一种方法
对于新条形码,请更改生成器功能。使用分隔符或固定宽度字符(用于pk)
例如:YNT9299GGGGGPPPPPCCCCC
其中G=>GRN pk,p=>Product pk,C=>Count。或使用分隔符YNT9299G1P23C2
是的,这个解决方案不是万无一失的解决方案,只是针对所造成的混乱的一个解决办法。也许你应该使用一些分隔符。@ArakkalAbu好的,最重要的是我已经为大量产品创建了条形码,它们已经放在上面了。答案是,你不能这样做——正如前面所指出的,没有分隔符是不行的出来不同的
pk
值和最后一个计数器(j+1
)将一起流血,您将不知道一个计数器在哪里结束,下一个计数器在哪里开始。“固定宽度和有限长度的pks也会起作用,但你也没有。”urbanespaceman那么我应该现在辞职还是等到他们找到它?哈哈。恐怕我不能回答那个问题。但这是一个大问题,所以最好的办法是。。。取决于已经发行的数量和你已经拥有的pk
范围-如果你有可能暂停更多的生产一段时间-可能有一条出路。。。不过,这完全取决于现有数据。