首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我试图渲染标签时,我得到了Wallpaper.Wallpaper.None

当我试图渲染标签时,我得到了Wallpaper.Wallpaper.None
EN

Stack Overflow用户
提问于 2022-08-01 15:02:36
回答 1查看 15关注 0票数 0

views.py

代码语言:javascript
复制
def download(request, wallpaper_name):
try:
    wallpaper = Wallpaper.objects.get(name=wallpaper_name)
    similar_wallpapers = wallpaper.tags.similar_objects()[:2]

except Exception as exc:
    wallpaper = None
    similar_wallpapers = None
    messages.error = (request, 'Sorry! data does not exist')

context = {'wallpaper': wallpaper, 'similar_wallpapers': similar_wallpapers}
return render(request, 'Wallpaper/download.html', context)

models.py

代码语言:javascript
复制
class Tags(models.Model):
tag = models.CharField(max_length=100)

def __str__(self):
    return self.tag



class Wallpaper(models.Model):
    name = models.CharField(max_length=100, null=True)
    size = models.CharField(max_length=50, null=True)
    pub_date = models.DateField('date published', null=True)
    resolution = models.CharField(max_length=100, null=True)
    category = models.ManyToManyField(Category)
    tags = TaggableManager()
    Device_Choices = [
        ('PC', 'pc'),
        ('mobile', 'mobile')
    ]
    Devices = models.CharField(max_length=20,choices=Device_Choices, default= 'PC')
    image = models.ImageField(upload_to='Wallpaper/Images/', default="")

    def __str__(self):
        return self.name

download.html

代码语言:javascript
复制
<div class="tag">
    <h3>Tags</h3>
    <ul>

        <li>{{wallpaper.tags}}</li>

    </ul>
    
</div>

我要把那个墙纸的所有标签都渲染出来。

如果可能的话,请告诉我是否有其他方法来处理标签,因为使用taggit非常困难,我得到了manny错误。

EN

回答 1

Stack Overflow用户

发布于 2022-08-01 15:12:10

标记是一个多到多的关系,因此您需要在模板中使用.all来获得它们。但是,这只会向您展示查询集,因此您需要遍历它们以呈现它们的名称:

代码语言:javascript
复制
<ul>
{% for tag in wallpaper.tags.all %}
    <li>{{ tag.name }}</li>
{% endfor %}
</ul>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73195741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档