Это базовый код, который я использую:
https://github.com/justdjango/video-membership/tree/master/courses
3 основных файла:
- models.py
- просмотров.py
- templates / course_list.html
Но я добавил некоторые дополнительные функции в models.py, чтобы включить skill_level и тему с выбором модели:
class Subject(models.Model):
SUBJECT_CHOICES = (
('tech', 'Technical'),
('bus', 'Business'),
('lead', 'Leadership'),
)
name = models.CharField(max_length=20,choices=SUBJECT_CHOICES, unique=True)
def __str__(self):
return self.name
class Skill_level(models.Model):
SKILL_LEVEL_CHOICES = (
('Begin', 'Beginner'),
('Interm', 'Intermediate'),
('Adv', 'Advanced'),
)
name = models.CharField(max_length=20,choices=SKILL_LEVEL_CHOICES, unique=True)
def __str__(self):
return self.name
class Course(models.Model):
slug = models.SlugField()
title = models.CharField(max_length=120)
description = models.TextField()
allowed_memberships = models.ManyToManyField(Membership)
created_at = models.DateTimeField(auto_now_add=True)
subjects = models.ManyToManyField(Subject)
skill_level = models.ManyToManyField(Skill_level)
visited_times = models.IntegerField(default=0)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('courses:detail', kwargs={'slug': self.slug})
@property
def lessons(self):
return self.lesson_set.all().order_by('position')
В конечном итоге я хочу просмотреть циклы предметов и skill_levels, чтобы результаты цикла можно было использовать в раскрывающемся меню, чтобы пользователи могли искать / фильтровать курсы определенного предмета или курсы определенного уровня квалификации. Но сейчас я хочу получить выпадающую форму с вариантами выбора.
Пример результата:
https://imgur.com/a/YKhORP9
Буду признателен, если кто-нибудь предоставит какой-нибудь код, который мог бы выполнить это.