首页 > 解决方案 > 在 Django 数据库中搜索生成的格式

问题描述

在我的 django 应用程序中,我正在使用模型和str产品的组合创建条码。条形码已生成,但我遇到的问题是当我扫描条形码时,我想显示扫描产品的信息。idid

我将能够以更好的方式理解代码的问题

模型.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)

视图.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)} )

现在假设我生成了一个 Barcode YNT92991231,现在我不知道如何i.item.pk从这个代码中获取

我怎样才能做到这一点 ?

Ps 好的,最重要的是我已经为大量产品创建了条形码并且它们已经放置在它们上面,所以此时不​​能真正改变条形码格式

标签: pythondjango

解决方案


现在,当我们无法改变任何东西时。为您生成所有条形码GRN。将它们保存在文件或数据库中。每当有与那些匹配的查询时,就从那里找到它们。如果有任何冲突(当 2 个或更多产品具有相同的条形码时)Django USER 可以是解决冲突的一种方法。

对于新条码,更改生成器功能。使用分隔符或固定宽度字符(用于 pk)。

例如:YNT9299GGGGGPPPPPCCCCC其中 G => GRN pk,P => 产品 pk,C => 计数。或带分隔符YNT9299G1P23C2

是的,解决方案不是万无一失的解决方案,它只是解决所造成混乱的一种解决方法。


推荐阅读