【问题标题】:Choices in djangodjango 中的选择
【发布时间】:2019-11-22 13:51:34
【问题描述】:

我的模特:

class Book(models.Model):
    # book types and placed
    BIOGRAFIA = 1
    FANTASTYKA = 2
    HISTORYCZNY = 3
    HORROR = 4
    POEZJA = 5
    PRZYGODA = 6
    ROMANS = 7
    DRAMAT = 8
    BRAK = 0
    B00K_CHOICES = (
        (BIOGRAFIA, 'Biografia'),
        (FANTASTYKA, 'Fantasy/Sci-Fi'),
        (HISTORYCZNY, 'Historyczny'),
        (HORROR, 'Horror'),
        (POEZJA, 'Poezja'),
        (PRZYGODA, 'Przygoda'),
        (ROMANS, 'Romans'),
        (DRAMAT, 'Dramat'),
        (BRAK, 'Brak informacji'),
    )
    tytul = models.CharField(max_length=60, unique=True)
    autor = models.ForeignKey(Author, on_delete=models.CASCADE)
    opis = models.TextField(null=True, blank=True)
    gatunek = models.IntegerField(choices=B00K_CHOICES, default=BRAK)
    cena = models.DecimalField(max_digits=400, decimal_places=2)
    rok_wydania = models.DateField(null=True, blank=True)
    liczba_stron = models.PositiveIntegerField(null=True, blank=True)
    zdjecie = models.ImageField(null=False, blank=True, upload_to='zdjecia_ksiazek')
    przecena = models.BooleanField()



    def __str__(self):
        return self.tytul

我的观点:

def Gatunek(request, gatunek_id):
    ksiazki = Book.objects.filter(gatunek=gatunek_id)
    return render(request, 'ksiazki.html', {'ksiazki': ksiazki})

我觉得我的观点不太好,不知道是不是也应该是{{gatunek.加图尼克}}

我的模板 HTML:

                     {% for ksiazki in ksiazki  %}
                    <div class="card" style="width: 500px">
                        <div class="card-body">
                                <img src="/media/{{ksiazki.zdjecie}}">
                            <div class="row">
                                <div class="col-sm-9">
                                    <h2>{{ksiazki}}</h2>

                                </div>
                                <div class="col-sm-3">
                                    <a href="{% url 'Edytuj_ksiazke' ksiazki.id %}"><i class="fas fa-2x fa-edit"></i></a>
                                    <a href="{% url 'Usun_ksiazke' ksiazki.id %}"><i class="fas fa-2x fa-trash-alt"></i></a>
                                </div>
                            </div>

                                <p>{{ ksiazki.gatunek }} </p>
                                <p>{{ ksiazki.opis }}</p>
                            </div>
                    </div>
                        {% endfor %}

在我看来,当我在寻找具有选择参数的字段时,我在 Django 中遇到了问题。我没有得到字段名称,而是出于奇怪的原因得到了数字。 请帮忙

【问题讨论】:

    标签: django django-models django-templates


    【解决方案1】:

    为了获得选择的文本表示,您可以使用get_<i>fieldname</i>_display() method [Django-doc],所以这里是.get_gatenuk_display()。在您的模板中,您可以使用:

    {{ ksiazki.<b>get_gatunek_display</b> }}

    你应该包含括号。 Django 的模板语言不允许这样做,但会自动调用 callables。

    【讨论】:

      【解决方案2】:

      我还有一个问题,如何让我的模板 (html) 在导航栏 (boostrap) 中显示您的所有选择 = B00K_CHOICES

      【讨论】:

        猜你喜欢
        • 2022-09-23
        • 2011-12-31
        • 1970-01-01
        • 2011-03-28
        • 1970-01-01
        • 2015-11-08
        • 2016-10-02
        • 2014-01-25
        • 1970-01-01
        相关资源
        最近更新 更多