Django遍历模型选择

这是我正在使用的基本代码:

https://github.com/justdjango/video-membership/tree/master/courses

3个主要文件:

  1. models.py
  2. views.py
  3. 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'),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

如果有人可以提供一些可以完成此任务的代码,我将不胜感激。

h540969896 回答:Django遍历模型选择

class Skill_level(models.Model):
    choices = models.CharField(max_length=25)

    def __str__(self):
        return self.choices

class Course(models.Model):
    skill_level = models.ForeignKey(Skill_level,on_delete= ....)

您可以尝试这种方式,它将在您的表单中显示为下拉列表。

本文链接:https://www.f2er.com/3120391.html

大家都在问