Tôi có một lớp được định nghĩa Django Mẫu thích này trong Models
:Django ModelChoiceField: lọc truy vấn thiết lập và thiết lập giá trị mặc định như một đối tượng
class AccountDetailsForm(forms.Form):
...
adminuser = forms.ModelChoiceField(queryset=User.objects.all())
này hoạt động OK, nhưng nó có một số hạn chế tôi dường như không thể làm việc xung quanh:
(1) tôi muốn sử dụng một bộ lọc trên queryset, dựa trên một biến accountid
truyền cho các hình thức, như thế này:
User.objects.filter(account=accountid)
Điều này không thể làm việc trong mô hình bởi vì tất nhiên, không thể chuyển đổi accountid
thành biến.
Sau đó, queryset
phải bằng cách nào đó được xác định trong Views
, nhưng theo như tôi có thể thấy đó là trường bắt buộc trong lớp Biểu mẫu.
(2) Tôi muốn thực hiện các lựa chọn mặc định của AccountDetailsForm
một đối tượng trong cơ sở dữ liệu, mà tôi có thể lựa chọn trong Views
như thế này:
User.objects.filter(account=accountid).filter(primary_user=1)
tôi đã cố gắng xác định adminuser như một mặc định giá trị trong biểu mẫu, (hoạt động với các trường biểu mẫu chuẩn khác, như CharField
):
adminuser = User.objects.filter(account=accountid).filter(primary_user=1)
...
form = AccountDetailsForm({'adminuser': adminuser})
return render_to_response('accounts/edit/accountdetails.html',
{'form': form, 'account':account})
Nhưng không may mắn.
Tôi có nên sử dụng thứ gì đó khác ngoài ModelChoiceField
vì tính linh hoạt tôi cần ở đây không?
Cảm ơn.
Hi, nhờ trả lời của bạn. Đặt bộ truy vấn trong chế độ xem hoạt động tốt. Phần tôi không thể làm việc là thiết lập giá trị biểu mẫu bị ràng buộc (thay vì mặc định) của ModelChoiceField là _User.objects.filter (account = accountid) .filter (primary_user = 1) _. Cảm ơn. – eli