Django встроенная форма с несколькими внешними ключами - PullRequest
0 голосов
/ 28 марта 2020

У меня есть 2 модели, как показано ниже:

models.py

from django.contrib.auth.models import User #(with groups = 'admin','student','faculty')

class Course (models.Model):
   name = models.CharField(max_length=100)

class Course_Faculty (models.Model):
   course = models.ForeignKey(Course,on_delete=models.CASCADE)
   faculty = models.ForeignKey(User,on_delete=models.SET_NULL,null=True)

И мой мотив состоит в добавлении / удалении только пользователей с именем группы 'faculty' к курсу с использованием встроенного Formset следующим образом, но я получил список всех пользователей в результате.

views.py


def viewCourse (request,pk):
    course = Course.objects.get(id=pk)

    FacultyFormset = inlineformset_factory(Course, Course_Faculty, fields=('faculty',))
    formset = FacultyFormset(queryset=Course_Faculty.objects.filter(faculty__groups__name='faculty'), instance=course)
    if request.method == 'POST':

        formset = FacultyFormset(request.POST, instance=course)
        if formset.is_valid():
            formset.save()

            return redirect('view_course', course_id=course.id)

    formset = FacultyFormset(instance=course)
    context = {
        'course':course,
        'formset': formset

    }
    return render(request,'myapp/courseProfile.html',context)

Пожалуйста, предложите, как достичь.

...