簡體   English   中英

Django 循環通過 model 選擇

[英]Django loop through model choices

這是我正在使用的基本代碼:

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

3個主要文件:

  1. 模型.py
  2. 視圖.py
  3. 模板/course_list.html

但是我在 models.py 中添加了更多功能,包括一個技能級別和主題以及 model 選項:

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')

我最終要做的是循環遍歷主題和技能級別,以便可以在下拉菜單中使用循環結果,以便用戶可以搜索/過濾特定主題的課程或特定技能水平的課程。 但是現在我想讓下拉表單填充選項。

示例結果:

https://imgur.com/a/YKhORP9

如果有人可以提供一些可以完成此任務的代碼,我將不勝感激。

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= ....)

您可以嘗試這種方式,它將在您的表單中顯示為下拉菜單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM