Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django数据库中搜索生成的格式_Python_Django - Fatal编程技术网

Python 在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=

在我的django应用程序中,我正在使用型号的
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
范围-如果你有可能暂停更多的生产一段时间-可能有一条出路。。。不过,这完全取决于现有数据。