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?
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ответы на вопрос 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)})


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

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

Похожие вопросы