Tôi đang tìm cách thu hẹp truy vấn được đặt cho một trường biểu mẫu có một khóa ngoại tuyến vào bảng Người dùng xuống nhóm mà người dùng thuộc về.Django: Cách lọc Người dùng thuộc về một nhóm cụ thể
Các nhóm trước đây đã được tôi liên kết. Mô hình này có thể có một cái gì đó như sau:
myuser = models.ForeignKey(User)
Và ModelForm của tôi là xương rất trần:
class MyForm(ModelForm):
class Meta:
model = MyModel
Vì vậy, khi tôi nhanh chóng hình thức tôi làm điều gì đó như thế này trong views.py tôi:
form = MyForm()
Bây giờ câu hỏi của tôi là, làm cách nào tôi có thể lấy trường myuser và lọc để chỉ người dùng nhóm 'foo' hiển thị .. giống như:
form.fields["myuser"].queryset = ???
Các truy vấn trong SQL trông như thế này:
mysql> SELECT * from auth_user INNER JOIN auth_user_groups ON auth_user.id = auth_user_groups.user_id INNER JOIN auth_group ON auth_group.id = auth_user_groups.group_id WHERE auth_group.name = 'client';
Tôi muốn tránh sử dụng SQL thô mặc dù. nó có khả thi để làm vậy không?
Tuyệt vời, cảm ơn Joe. Tôi đã đăng câu lệnh SQL này ở trên bên phải khi bạn đăng câu trả lời. Đánh giá cao phản hồi, hoạt động tuyệt vời. – randombits
Không có prob, tôi đã quay lại và chỉnh sửa nó để chỉ cho bạn cách in ra SQL cho một bộ truy vấn để bạn có thể so sánh nó với những gì bạn đang mong đợi. –