python - Django模型结构使用另一个表中的键从外键表中获取数据
问题描述
我是 Django 新手,我找不到正确的答案来获取我的进度。我认为这是因为我的模型是错误的,所以我正在寻找错误的东西。
我正在尝试查找特定项目的所有进度状态。
我的解决方法是在 views.py 中解析 Progress 对象中的所有对象,如果 item_id 与 id 匹配,则将其添加到列表中并将列表发送到模板。但是我的进度列表很大,像 10000 和缩放,每个项目只有 4 到 5 个进度。所以我不知道每次单击项目 URL 时解析所有进度列表是否是个好主意
Models.py
class Item(models.Model):
name = models.CharField(max_length=256)
id =models.AutoField(primary_key=True)
def __str__(self):
return self.name
class Progress(models.Model):
text=models.CharField(max_length=256)
id=models.AutoField(primary_key=True)
item_id=models.ForeignKey(Item,on_delete=models.CASCADE)
start_date = models.DateField(default=django.utils.timezone.now)
def __str__(self):
return self.name
和意见
Views.py
def item(request,item):
pp = Progress.objects.all()
ip=get_object_or_404(Item,id=item)
print(item)
show=[]
for each in pp:
if each.item.id ==int(item):
print(each.item.id)
show.append(each)
return render(request,'main/item.html',{'show':show,'ip':ip})
所需输出示例:
localhost/main/item/3
Item: Launch A
progress:
|- Initiated
|- fetched all the metadata
|- informed stakeholders
|- waiting for approval
localhost/main/item/9
Item: Automate Bots
progress:
|-Bot A scripted
|-Bot A ready for testing
|-Design proposal for bot B sent
|-Bot A failed edge cases
解决方案
推荐阅读
- javascript - 使用 Vue CLI - 如何更新、删除和查看所有可用插件
- javascript - 在angular2中查找具有相同名称的对象数组的值的总和
- fortran - 将 coarray 子数组传递给函数会给出数组的错误部分
- forms - 使用 Angular 6 和 NodeJs 的自定义 Stripe Checkout 表单
- python - Python中数字序列的R paste()
- r - R:如何制作仅在一侧分级的热图色阶?
- python - Python - 用于计算成对皮尔逊相关系数的矢量化函数
- matlab - 为什么 Matlab 中两个不同格式的日期时间不相等?
- image - 图像保存后,背景颜色变为黑色
- performance - 如何提高 controller.get_callable 的执行时间