0
0 комментариев

Коллеги, пробую сделать на сайте алфавитную навигацию в онлайн словаре. По идее, при клике на определенную букву должны выводиться слова, которые начинаются с нее.
По сути алфавитная навигация, это те же категории.
Вот как выглядит код в models.py:

class Alphabet(models.Model):
    harf = models.CharField(max_length=10, verbose_name='Letter')
 
    def __str__(self):
        return self.harf
 
 
class Words(models.Model):
    title = models.CharField(max_length=100, verbose_name='Word')
    audio = models.FileField(upload_to='audio', blank=True, verbose_name='Sound')
    russian = models.TextField(default='', blank=True, verbose_name='Russian')
    english = models.TextField(default='', blank=True, verbose_name='English')
    turkish = models.TextField(default='', blank=True, verbose_name='Turkish')
    letter = models.ForeignKey(Alphabet, null=True, blank=True, verbose_name='Letter')
 
    class Meta:
        verbose_name = 'Word'
        verbose_name_plural = 'Words'
        ordering = ['title']
 
    def __str__(self):
        return self.title

Проблема заключается в том, что при клике на одну букву, в этой букве отображаются все слова, которые есть в базе. Вот так выглядит views.py:

def letter(request, letter_id):
    page = request.GET.get('page', 1)
    word = Words.objects.filter().order_by('title')
    showletter = get_object_or_404(Words, id=letter_id)
    paginator = Paginator(word, 3)
    word = paginator.page(page)
    return render(request, 'myapp/letter.html', {'showletter': showletter, 'word': word})

И скорее всего проблема, тут. Долго бился, но ничего не выходит, видимо сказывается мой небольшой опыт, не так уж давно начал изучать Python/Django, поэтому прошу вашей помощи, коллеги.

Template:

{% for words in word %}
        <li class="listofwords"><a class="foundword" href="{% url 'translations' words.id %}">{{ words.title }}</a>
            <span id="flags">
                {% if words.russian %}<img class="countryflags" src="{% static 'images/RU.png' %}" alt="RUS">{% endif %}
                {% if words.english %}<img class="countryflags" src="{% static 'images/GB.png' %}" alt="ENG">{% endif %}
                {% if words.turkish %}<img class="countryflags" src="{% static 'images/TR.png' %}" alt="TUR">{% endif %}
            </span>
        </li>
        {% endfor %}

Изменен статус публикации
Добавить комментарий