我正在创建一个指南应用程序,其中每个指南由3个类组成,如下图所示。打印相关对象的对象python
我如何为第2步的例子打印子任务3在引导1
这是我可以在shell做为止。
class Guide(models.Model):
user = models.ForeignKey(User, default=1)
guide_category = models.CharField(max_length=250)
guide_title = models.CharField(max_length=500)
guide_how = models.CharField(max_length=100)
guide_why = models.CharField(max_length=100)
guide_logo = models.FileField()
is_complete = models.BooleanField(default=False)
def __str__(self):
return self.guide_title + ' - ' + self.guide_category + ' - ' + self.guide_how + ' - ' + self.guide_why
class Step(models.Model):
guide = models.ForeignKey(Guide, on_delete=models.CASCADE)
step_title = models.CharField(max_length=250)
is_complete = models.BooleanField(default=False)
def __str__(self):
return self.step_title
class Subtask(models.Model):
step = models.ForeignKey(Step, on_delete=models.CASCADE)
subtask_title = models.CharField(max_length=250)
subtask_description = models.CharField(max_length=250)
subtask_image = models.FileField()
is_complete = models.BooleanField(default=False)
def __str__(self):
return self.subtask_title
这是我可以在shell中做到的。
from appname.models import Guide, Step, Subtask
guide1 = Guide(pk=1)
guide2 = Guide(pk=2)
>>> Guide.objects.all()
[<Guide: Test1 - CR - how1 - why2>, <Guide: test2 - VR - how2 - why2>]
>>> Step.objects.all()
[<Step: 1>, <Step: 2>, <Step: 1>, <Step: 2>]
>>> Subtask.objects.all()
[<Subtask: 1.1.1>, <Subtask: 1.1.2>, <Subtask: 1.2.1>, <Subtask: 1.2.2>, <Subtask: 2.1.1>]
谢谢! :)
guide = Guide.objects.get(1); step = guide.step_set.filter(id = 2);打印(step.subtask_set.filter(id = 3)) – hadi
谢谢!但我得到一个类型的错误,当我做: >>>指南= Guide.objects.get(PK = 1) 回溯(最近最后一次通话): 文件 “”,1号线,在 文件“ /Library/Python/2.7/site-packages/django/db/models/manager.py“,第122行,在manager_method中 return getattr(self.get_queryset(),name)(* args,** kwargs) File” /Library/Python/2.7/site-packages/django/db/models/query.py“,第387行,获取 self.model._meta.object_name DoesNotExist:指南匹配查询不存在。 –
9minday
因为id = 1的指南不存在 – hadi