2011-03-04 133 views
2
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智能選擇過濾ManyToManyField?

感謝 Anks

回答

0

我已經做了的Javascript類似的東西。

從禁用單元HTML元素開始。一旦用戶選擇課程,就會向所選課程的服務器發出Ajax請求,並返回有效單位。仍然使用JavaScript,您將這些單位添加到適當的元素,然後才能啓用它。如果用戶更改課程,則會發出新請求以使用適當的單位更新Unit元素。

爲了加快速度,您可以將所有單位提供給客戶端,並且一旦選擇課程,也可以使用Javascript動態加載它們。這種方法減少了等待時間,但增加了傳輸的文件大小(如果它們不是數百,可能會更好)。

相關問題