模型.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',blank=True)
def __str__(self):
return self.post.title
我有两个模型任务和图像。在存储多个图像时为一个任务保存。我想使用分页显示任务列表以及每个任务中的图像。
视图.py:
@login_required(login_url='/account/login/')
@page_template('student_dash_page.html')
def StudentDashView(request,template='student_dash.html', extra_context=None):
if not request.user.is_authenticated:
return redirect('accounts:index')
task = Task.objects.all().order_by('timestamp')
images = Images.objects.filter(post=task)
notifications = Notification.objects.filter(receiver=request.user).order_by('-timestamp')
page = request.GET.get('page', 1)
paginator = Paginator(task, 10)
try:
tasks = paginator.page(page)
except PageNotAnInteger:
tasks = paginator.page(1)
except EmptyPage:
tasks= paginator.page(paginator.num_pages)
context = {
'notifications': notifications,
'nbar': 'home',
'task': tasks,
'images': images
}
if not request.user.is_client:
return HttpResponse("You are in trainer account")
if extra_context is not None:
context.update(extra_context)
return render(request, template, context)
如何使用 for 循环使图像在模板内正确显示
我想
{% for obj in task %}
<p>{{ obj.title }}
{% for image in images %}
<img src="{{ image.url }}"</img>
{% endfor %}
{% endfor %}
我收到错误:精确查找的 QuerySet 值必须使用切片限制为一个结果。