【问题标题】:Html select POST DjangoHtml 选择 POST Django
【发布时间】:2019-11-28 15:45:16
【问题描述】:

你好,我是 django 新手。

我有一个看起来像这样的模型。

Models.py

class CustomUser(AbstractUser):
pass

first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)

def __str__(self):
    return self.username

class Campus(models.Model):
    name = models.CharField(max_length=50)

    def __str__(self):
        return self.name

class Intervention(models.Model):
    subject = models.CharField(max_length=200)
    begin_date = models.DateField(default=datetime.datetime.today)
    end_date = models.DateField(default=datetime.datetime.today)
    description = models.TextField(blank=True)
    speaker = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
    campus = models.ForeignKey(Campus, on_delete=models.CASCADE)
class Meta:
    verbose_name = 'Intervention'
    verbose_name_plural = 'Interventions'

def __str__(self):
    return self.subject

class Evaluation(models.Model):
    interventions = models.ForeignKey(Intervention, on_delete=models.CASCADE)
    student_id = models.CharField(max_length=20)
    speaker_knowledge_mark = models.IntegerField(validators=[MaxValueValidator(20), MinValueValidator(0)])
    speaker_teaching_mark = models.IntegerField(validators=[MaxValueValidator(20), MinValueValidator(0)])
    speaker_answer_mark = models.IntegerField(validators=[MaxValueValidator(20), MinValueValidator(0)])
    slide_content_mark = models.IntegerField(validators=[MaxValueValidator(20), MinValueValidator(0)])
    slide_examples_mark = models.IntegerField(validators=[MaxValueValidator(20), MinValueValidator(0)])
    comment = models.TextField(blank=True)

    class Meta:
        verbose_name = 'Evaluation'
        verbose_name_plural = 'Evaluations'

所以,基本上我要做的是在主页上我想要一个选择框,学生必须在其中选择他的校园,然后他将被重定向到一个新页面,他只能看到干预措施属于他选择的校园

我的主页如下所示:

<form method="post" action="/Mark/"/>
    <select name="campus_id">
      <option value="" disabled selected>Choose your Campus</option>
      {% for camp in campus %}
      <option value="camp.pk">{{ camp.name }}</option>
      {% endfor %}
    </select>
    <input type="submit" />
  </form>

我尝试了几件事,但都没有成功:/如果有人可以帮助或给我提示。

谢谢。 最好的问候。

【问题讨论】:

    标签: python django forms orm materialize


    【解决方案1】:

    我建议你有一个清晰的想法并定义流程:

    • 您有一个视图来显示选择校园的表单(或者您可能有一个链接列表)
    • 创建一个显示干预表(列表)的视图 (ListView)
    • 使用 Campus 模型中的选项创建一个 Django 表单
    • 将处理此表单的视图 (FormView) 将获取所选值并使用提供的值 (id) 重定向到另一个视图。
    • 干预显示视图 (ListView) 提供的列表项按相应的校园 id 过滤 (get_queryset)

    【讨论】:

      猜你喜欢
      • 2018-05-16
      • 2017-01-05
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      • 2013-01-12
      • 1970-01-01
      • 2018-09-30
      相关资源
      最近更新 更多