Django查询通过外键关系获取属于特定对象的所有表单集图像

时间:2018-10-23 11:28:38

标签: python django

views.py

def TrainerDashView(request):
if not request.user.is_authenticated:
     return redirect('accounts:index')
else:
 page = request.GET.get('page', 1)
 notifications = Notification.objects.filter(receiver= request.user,task__is_verified=False)
 count = Notification.objects.filter(receiver = request.user).count()
 tasks = Task.objects.filter(student__mentor=request.user,is_verified=False)


 paginator = Paginator(tasks,1)
 try:
     tasklist = paginator.page(page)
 except PageNotAnInteger:
     tasklist = paginator.page(1)
 except EmptyPage:
     tasklist = paginator.page(paginator.num_pages)
 context={
    'notifications':notifications,
    'trainer':request.user,
    'tasks': tasklist,

     }
 return render(request,'mentor.html',context)

models.py

class Task(models.Model):
 level = models.ForeignKey(Level, on_delete=models.CASCADE)
 todo = models.ForeignKey(ToDo, on_delete=models.CASCADE)
 student = models.ForeignKey(User, on_delete=models.CASCADE)
 title = models.CharField(max_length=150)
 content = models.TextField()
 timestamp = models.TimeField(auto_now=True)
 datestamp = models.DateField( auto_now=True)
 like 
 =models.ManyToManyField(User,related_name='user_likes',blank=True)
is_verified=models.BooleanField(default=False,blank=True)
def __str__(self):
    return self.title

def get_absolute_url(self):
    return reverse('student:task-detail', kwargs={'pk': self.pk})
objects = PostManager()

@property
def comments(self):
    instance = self
    qs = Comment.objects.filter_by_instance(instance)
    return qs

@property
def get_content_type(self):
    instance = self
    content_type = ContentType.objects.get_for_model(instance.__class__)
    return content_type


class Images(models.Model):
   post = models.ForeignKey(Task, default=None,on_delete=models.CASCADE)
   image = models.ImageField(verbose_name='Image')

我正在使用表单集将3张图像连接到特定任务。我想在模板中显示该任务的3张图像。这些任务显示为带有分页的列表,每页1个任务。如何获得所有3张图像并显示特定任务?对要使用的查询感到困惑!

1 个答案:

答案 0 :(得分:0)

pagee = request.GET.get('page')
  if pagee == None:
      pagess=1

  else:
      pagess=int(pagee)

 print("PAGE NUMBER",pagess)
 try:
  images = Images.objects.filter(post=tasks[pagess-1])
 except KeyError:
     raise TypeError('Index error')  

我找到了一个解决方案。通过获取当前页码,我可以将其作为任务数组的索引,并正确获取图像!