首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Django中使用选项-如何显示特定内容?

如何在Django中使用选项-如何显示特定内容?
EN

Stack Overflow用户
提问于 2018-07-30 00:56:54
回答 1查看 99关注 0票数 0

我尝试在Django中创建一个图书数据库。我还有一件事要做。所以我有一个有选择的模型:

代码语言:javascript
复制
#model Book

课本(models.Model):

代码语言:javascript
复制
#book types and placed
BIOGRAPHY = 1
FANTASY = 2
HISTORICAL = 3
HORROR = 4
CLASSIC = 5
YOUTH_LITHERATURE = 6
NON_FICTION = 7
MODERN_LITERATURE = 8
POETRY = 9
ADVENTURE = 10
ESSAYS = 11
ROMANCE = 12
SATIRE = 13
THRILLER = 14
DRAMA = 15
NONE = 0

B00K_CHOICES = (
    (BIOGRAPHY,'Biography'),
    (FANTASY, 'Fantasy/Sci-Fi'),
    (HISTORICAL, 'Historical'),
    (HORROR, 'Horror'),
    (CLASSIC, 'Classic'),
    (YOUTH_LITHERATURE, 'Youth Litherature'),
    (NON_FICTION, 'Non-Fiction'),
    (MODERN_LITERATURE, 'Modern Literature'),
    (POETRY, 'Poetry'),
    (ADVENTURE, 'Adventure'),
    (ESSAYS, 'Essays'),
    (ROMANCE, 'Romance'),
    (SATIRE, 'Satire'),
    (THRILLER, 'Thriller'),
    (DRAMA, 'Drama'),
    (NONE, 'No Information'),
)




book_image = models.ImageField(upload_to='book_image', blank=True, null=True)
book_name = models.CharField(max_length=255, unique=True)
book_author = models.ForeignKey(Author, on_delete=models.CASCADE)
book_types = models.IntegerField(choices=B00K_CHOICES, default= NONE)
book_description = models.TextField(null=True, blank=True)
book_pages = models.PositiveIntegerField(null=True, blank=True)
book_published = models.DateField(null=True, blank=True)
book_ratings = GenericRelation(Rating, related_query_name='book', default=NONE)


def __str__(self):
    return '{}'.format(self.book_name)

然后,我创建了一个简单的视图,其中包含display this choices:

代码语言:javascript
复制
def book_types_list(request):
book = Book.objects.all()
context = {'book': book, 'book_types': Book.B00K_CHOICES}
return render(request, 'plibrary_core/book_types_list.html', context)

我还创建了一个包含此选项列表的html模板:

代码语言:javascript
复制
    {% extends 'base.html' %}
{% load static %}

{% block custom %}
    <link rel='stylesheet' type="text/css" href="{% static 'css/background_color_styles.css' %}">
{% endblock %}


{% block title %}

<title>Book Types List | Private Library</title>

{% endblock %}

{% block content %}
<div class="container">

        <div class="col">
            <div id="background-color-content">
                <h3>Book Types</h3>
                <hr>

               {% for book_type in book_types %}
                    <ul>
                            <h6><a href="#">{{ book_type }}</a></h6>
                    </ul>
                {% endfor %}


            </div>
        </div>
</div>
{% endblock %}

在这个时刻,我需要类似这样的东西-用户点击图书类型(例如Horror),然后他会看到另一个模板,其中包含仅包含此类型的所有图书。我试着这样做,但它不起作用。我不知道该怎么解决它。有人知道我需要做什么吗?;X

EN

回答 1

Stack Overflow用户

发布于 2018-07-30 01:05:24

有了这个元素,您就可以在屏幕上呈现一个select元素,它将使用您在select中提供的选项,而不是图书类型的for循环

代码语言:javascript
复制
{{ book.booktypes }}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51582550

复制
相关文章

相似问题

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