Задать вопрос
google_online
@google_online
My morning begins with coffee and Twitter.

Как сделать чтобы не повторяться?

У меня есть две модели

file models.py
from django.db import models
# -*- coding: UTF-8 -*-

class LessonOne(models.Model):
    russia = models.CharField(max_length=250)
    english = models.CharField(max_length=250)
    buttons = models.TextField()
    def __str__(self):
        return self.russia

class LessonTwo(models.Model):
    russia = models.CharField(max_length=250)
    english = models.CharField(max_length=250)
    buttons = models.TextField()
    def __str__(self):
        return self.russia'


В файле views.py
def listdataOne(request):
    data = LessonOne.objects.all()
    return render(request, 'fighter/listdataOne.html', {'data': data, "amount": len(data)})

def listdataTwo(request):
    data = LessonTwo.objects.all()
    return render(request, 'fighter/listdataTwo.html', {'data': data, "amount": len(data)})


В index.html
<li><a href="/fighter/listdataOne">First lesson.</a></li>
<li><a href="/fighter/listdataTwo">Second lesson.</a></li>


Возможно как-нибудь заменить функции listdataOne and listdataTwo на одну функцию и сделать для неё один шаблон HTML?
  • Вопрос задан
  • 153 просмотра
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
tema_sun
@tema_sun
# -*- coding: UTF-8 -*-
Должно быть самой первой строкой.

Вам нужна одна модель:
class Lesson(models.Model):
    lesson_number = models.IntegerField()
    russia = models.CharField(max_length=250)
    english = models.CharField(max_length=250)
    buttons = models.TextField()
    def __str__(self):
        return self.russia


И соответсвенно одна функция для вывода:
def listdata(request, lesson_number):
    data = LessonOne.objects.filter(lesson_number=lesson_number )
    return render(request, 'fighter/listdataOne.html', {'data': data, "amount": len(data)})


Но судя по вопросу я могу сделать вывод, что вы не изучили официальный туториал. Начните оттуда.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Strikt Москва
от 100 000 до 180 000 ₽
ITK academy Саратов
от 75 000 ₽
Sim-Ba Pay Санкт-Петербург
от 180 000 ₽