Manytomany поле возвращает пустой список - PullRequest
2 голосов
/ 30 мая 2011

Я новичок в django, поэтому, возможно, не знаю что-то, но я искал в Google и не получил никакого ответа. У меня есть такие модели:

class Word(models.Model):
    word = models.CharField(max_length=100)
    img = models.ImageField(upload_to='img/', blank=True, null=True)
    audio = models.FileField(upload_to='audio/', blank=True, null=True)
    language = models.ForeignKey(Language)
    def __unicode__(self):
        return self.word

class Lesson(models.Model):
    title = models.CharField(max_length=100)
    language = models.ForeignKey(Language)
    lesson_words_list = models.ManyToManyField(Word)
    def __unicode__(self):
        return self.title

И у меня есть следующая функция в представлениях:

def view_lesson(request, language, lesson_title):
    cur_lesson = Lesson.objects.filter(title__iexact = lesson_title).get(language__name__iexact=language)
    words_list = cur_lesson.lesson_words_list.all()
    return render_to_response("view_lesson.html", {"language":language, "lesson_title": lesson_title, "words_list":words_list})

вот как я это называю в шаблоне:

{% for Word in words_list %}        
{{ Word.word }}
{% endfor %}

Проблема в том, что words_list пуст, а через администратора я ясно вижу, что в моем уроке есть похожие слова. Почему он может быть пустым? и где мне искать ответ?

1 Ответ

2 голосов
/ 30 мая 2011

Is

{{ cur_lesson }} 

показывает правильный урок в вашем шаблоне?

Попробуйте:

{% for word in cur_lesson.lesson_word_list.all %}
    {{ word }}
{% endfor %}

Также посмотрите, если

{{ cur_lesson.lesson_word_list.all }}

показать правильный список слов в вашем шаблоне

...