可以在forms.py中使用变量吗?我正在使用基于Platform模型的queryset的选择字段。我的网址和视图包含此ID,但我不知道如何将此表单传递给我的查询集。
forms.py:
class OrderCreateForm(forms.ModelForm):
platform = forms.CharField(choices=Platform.objects.filter(client_id=variable_from_view_or_url).values_list('id', 'name').order_by('id'))
class Meta:
model = Order
fields = ('price', 'deadline', 'finished', 'client', 'platform')
view.py:
@user_passes_test(lambda u: u.is_staff, login_url='/account/login/')
def order_create(request, request_client_id):
dict = {}
dict['form_order'] = OrderCreateForm()
return render(request, 'panel/order/form.html', dict)
答案 0 :(得分:0)
是和否。
你这样做的方法是不可能的,但你可以在表单的init方法中定义选项
def __init__(self, client_id, *args, **kwargs):
super(OrderCreateForm, self).__init__(*args, **kwargs)
self.fields['platform'].choices = Platform.objects.filter(client_id=client_id).values_list('id', 'name').order_by('id')
然后用id
调用它OrderCreateForm(request_client_id)