Как выбрать некоторое значение из нескольких таблиц в Django?
Я хочу выбрать некоторых студентов из таблицы A, где имя пользователя и код класса не находятся в таблице B. Таким образом, будут показаны все студенты, которые еще не находятся в списке классов студентов.
запрос был такой
SELECT students from TableA WHERE username NOT IN tableB AND classcode = CODE
models.py
class modelStudentclassss m(models.Model):
classcode = models.CharField(max_length=200, null=False, blank=False)
username = models.CharField(max_length=200, null=False, blank=False)
class modelUser(models.Model):
username = models.CharField(max_length=200, null=False, blank=False)
views.py
studentclass = modelStudentclass.objects.all()
studentdata = modelUser.objects.exclude(studentusername = studentclass.username).filter(role="student", classcode=classcode)
Вы можете работать с:
Studentclass.objects.exclude(username__in=User.objects.values('username')).filter(
classcode=code
)
Примечание: Модели обычно не имеют префикса
Model…
. Поэтому лучше переименоватьвmodelUser
User
.
Note: Specifying
null=False
[Django-doc] is not necessary: fields are by default not NULLable.
Note: Specifying
blank=False
[Django-doc] is not necessary: fields are by default not blank and thus are required by a form.