gpt4 book ai didi

python - Django 查询关系

转载 作者:太空宇宙 更新时间:2023-11-03 20:27:22 24 4
gpt4 key购买 nike

代码没有返回基于员工的所有项目名称..?如何解决这个问题?模型有错吗?或查询?

模型.PY

class Employee(models.Model):
name = models.CharField(max_length=100)
telephone_number = models.CharField(max_length=20)
address = models.TextField()
email = models.EmailField()


class Item(models.Model):
code = models.CharField(max_length=4)
name = models.CharField(max_length=100)
kind = models.CharField(max_length=100)
description = models.TextField()


class Inventory(models.Model):
employee = models.ForeignKey(Employee, on_delete=models.CASCADE)
item = models.ForeignKey(Item, on_delete=models.CASCADE)

def get_absolute_url(self):
return reverse('inventaris-detail', kwargs={'pk': self.pk})

VIEWS.PY我怎样才能获得该员工的所有元素?

query_set = Inventory.objects.all()

for query in query_set:
output.append([
query.employee.name,
query.item.name
])

我需要类似query.employee.items_set.all() ..?

最佳答案

您想从员工那里获得所有元素吗?以下应该实现这一目标:

employee = Employee.objects.all()[0]  # Just get a random employee, you can do this with more employees too if you want
employees_items = [inventory.item for inventory in employee.inventory_set.all()]

老实说,您的代码在逻辑上没有多大意义。最有可能的是,Item 类上应该有一个字段,它是 Inventory 的 FK。您的元素类别可能应该是:

class Item(models.Model):
code = models.CharField(max_length=4)
name = models.CharField(max_length=100)
kind = models.CharField(max_length=100)
description = models.TextField()
inventory = models.ForeignKey(Inventory, on_delete=models.CASCADE)

(当然这是行不通的,因为 Inventory 是在这个类之后定义的,但是你可以将 Inventory 放在它上面,或者使用其他方法之一来解决这个问题)

祝你好运!

关于python - Django 查询关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57727293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com