【问题标题】:How can i use Django smart select to filter ManyToManyField?我如何使用 Django 智能选择来过滤 ManyToManyField?
【发布时间】:2011-03-04 07:41:09
【问题描述】:
class Course(models.Model):
    course_code = models.CharField(max_length=100,unique=True)
    title = models.CharField(max_length=200)
    short = models.CharField(max_length=50)
    elective_group = models.CharField(max_length=100)

class Unit(models.Model):
    title = models.CharField(max_length=100)
    short = models.CharField(max_length=50)
    course = models.ForeignKey(Course)

class Pattern(models.Model):
    pattern_name = models.CharField(max_length=200)

class ExamSchedule(models.Model):
    exam_date = models.DateTimeField()
    course = models.ForeignKey(Course)
    pattern = models.ForeignKey(Pattern)
    **units = models.ManyToManyField(Units)**

我需要实现功能,例如用户创建一个 Examschedule 对象,从下拉列表中选择课程后,单元小部件应仅包含与所选课程相关的单元。

谢谢 安克斯

【问题讨论】:

    标签: django django-models django-admin


    【解决方案1】:

    我用 Javascript 做过类似的事情。

    从禁用 Unit HTML 元素开始。一旦用户选择了课程,Ajax 请求就会发送到带有所选课程的服务器,并返回有效的单元。仍然使用 Javascript,您将这些单元添加到适当的元素,然后才启用它。如果用户更改课程,则会执行新请求以使用适当的单位更新 Unit 元素。

    为了加快速度,您可以将所有单元提供给客户端,并在选择课程后使用 Javascript 动态加载它们。这种方法减少了等待时间,但增加了传输文件的大小(如果不是数百个可能会更好)。

    【讨论】:

      猜你喜欢
      • 2011-09-10
      • 2012-04-29
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 2020-02-01
      • 2022-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多