【发布时间】:2020-11-06 20:09:44
【问题描述】:
我有一个由不同用户创建的资产列表。我想在模板中显示每个用户的资产。
现在,我有这个(有更多代码,但与此问题无关):
models.py:
from django.db import models
from django.contrib.auth.models import User
from tinymce import models as tinymce_models
class Asset(models.Model):
title = models.CharField(max_length=200)
description = tinymce_models.HTMLField()
dateadded = models.DateField(auto_now=True)
user = models.ForeignKey(User, on_delete=models.DO_NOTHING)
file = models.FileField(upload_to='images/', verbose_name='Image', null=True, blank=True)
url = models.URLField(max_length=500, blank=True, default='')
views.py
from .models import Asset
from django.contrib.auth.models import User
def assets(request):
assets = Asset.objects
users = User.objects
context = {'assets':assets, 'users':users}
return render(request, 'assets/assets.html', context)
但是我应该在我的模板中添加什么?以下给出了所有资产的列表,但第二部分应仅显示“bob”的资产,最终显示用户列出的所有资产(“bob”的所有资产,“pete”的所有资产等),无论用户是否签名在。
{% for asset in assets.all %}
{% if asset.file %}
{{ asset.dateadded_pretty }} - <a href="{% url 'detail' asset.id %}">{{ asset.title }}</a> <span style="font-size:11px">
({{ asset.ext }} - {{ asset.size }})</span>
{% else %}
{{ asset.dateadded_pretty }} - <a href="{% url 'detail' asset.id %}">{{ asset.title }}</a> <span style="font-size:11px">
(external link)</span>
{% endif %}
<br>
{% endfor %}
<br><br><br>
Assets by Bob:
{% for asset in assets.all %}
{% if asset.user == "bob" %}
{{ user.title}}
{% endif %}
{% endfor %}
{% endblock %}
感谢您的指点!
【问题讨论】: