python - 在 Django 数据库中搜索生成的格式
问题描述
在我的 django 应用程序中,我正在使用模型和str
产品的组合创建条码。条形码已生成,但我遇到的问题是当我扫描条形码时,我想显示扫描产品的信息。id
id
我将能够以更好的方式理解代码的问题
模型.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 好的,最重要的是我已经为大量产品创建了条形码并且它们已经放置在它们上面,所以此时不能真正改变条形码格式
解决方案
现在,当我们无法改变任何东西时。为您生成所有条形码GRN
。将它们保存在文件或数据库中。每当有与那些匹配的查询时,就从那里找到它们。如果有任何冲突(当 2 个或更多产品具有相同的条形码时)Django USER 可以是解决冲突的一种方法。
对于新条码,更改生成器功能。使用分隔符或固定宽度字符(用于 pk)。
例如:YNT9299GGGGGPPPPPCCCCC
其中 G => GRN pk,P => 产品 pk,C => 计数。或带分隔符YNT9299G1P23C2
。
是的,解决方案不是万无一失的解决方案,它只是解决所造成混乱的一种解决方法。
推荐阅读
- database - 跨平台跨数据库跨语言系统描述数据的通用方式
- django - 使用 .first 限制 django 查询集导致 TypeError 在 /path/ 'Product' 类型的对象没有 len()
- r - 在 R 包中编写用于连接到 PostgreSQL 数据库的包装函数
- laravel - 在 Laravel Eloquent 中,如何在子查询中引用主查询
- python - 将 Api 从 Ajax 更新为 Python
- c# - 性能问题:.NET HttpClient 响应缓慢
- scala - 在 POST 正文 Finatra 中为多个字段使用案例类时遇到问题
- r - RStudio:将 virtualenvs 设置为特定路径
- c# - GoogleOAuth2AuthenticationOptions google+ API 正在关闭
- spring - BCryptPasswordEncoder 如何在 Spring.Security 中工作?