Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 将模型字段设置为搜索结果_Django_Models - Fatal编程技术网

Django 将模型字段设置为搜索结果

Django 将模型字段设置为搜索结果,django,models,Django,Models,我有一个创建课堂的老师模型。我有另一种模式的学生,他们上课,但不创造课程。我还有班级模型。我试图做的是让学生搜索课程,点击结果并将其添加到他们参与的课程中。我有搜索工作,但我不能让第二部分工作 我把我的学生模型作为一个多领域,因为我认为一个班级应该有多个学生,而且学生可以参加多个班级。出于某种原因,在管理中,一旦添加了学生,就会让他们自动参与创建的所有类。我试图让学生在搜索这些课程后只参加他们选择的课程 我的学生模型: class Student(User): classe = mode

我有一个创建课堂的老师模型。我有另一种模式的学生,他们上课,但不创造课程。我还有班级模型。我试图做的是让学生搜索课程,点击结果并将其添加到他们参与的课程中。我有搜索工作,但我不能让第二部分工作

我把我的学生模型作为一个多领域,因为我认为一个班级应该有多个学生,而且学生可以参加多个班级。出于某种原因,在管理中,一旦添加了学生,就会让他们自动参与创建的所有类。我试图让学生在搜索这些课程后只参加他们选择的课程

我的学生模型:

class Student(User):
    classe = models.ManyToManyField(Classe)
    school_name = models.CharField(max_length=250)
我的看法是:

def add_course(request, classe_id):
    #c = Classe.objects.get(pk=classe_id)
    request.user.classe = classe_id
    request.user.save()
    return
我是否应该让班级定义与学生的多人关系? 此外,由于我与学生之间有很多关系,我可以根据学生筛选课程对象,但当我这样做时,什么也没有显示


谢谢。

我想你只是误解了管理中多选字段的用户界面。它总是显示所有选项;但实际为该用户选择的内容将显示为高亮显示。当然,默认情况下,不会选择任何选项,但您可以单击它们来添加它们

您可能会发现更好地使用该字段的选项,这使UI更加清晰

class StudentAdmin(admin.ModelAdmin):
    model = Student
    filter_horizontal = ('classe',)
其次,要在视图中为用户添加课程,您需要使用。添加:


完成此操作后,您不需要调用save

好的,非常感谢。为什么水平过滤选项更好?试试看。它不是在一个框中列出所有选项,只显示通过高亮显示选择的选项,而是将它们拆分为单独的框,用于选择和未选择,并使用一些JS按钮在它们之间移动选项。
request.user.classe.add(classe_id)