tengo una clase definida Forma Django gustos esto en Models
:Django ModelChoiceField: filtrado de consulta establecido por defecto y el valor de ajuste como un objeto
class AccountDetailsForm(forms.Form):
...
adminuser = forms.ModelChoiceField(queryset=User.objects.all())
Esto funciona bien, pero tiene algunas limitaciones me parece que no puede evitar:
(1) me gustaría utilizar un filtro en el queryset, basado en una variable accountid
pasado a la forma, como este:
User.objects.filter(account=accountid)
Esto no puede funcionar en el modelo porque accountid
no se puede pasar como una variable, por supuesto.
De esto se deduce que el queryset
debe definirse de alguna manera en el Views
, pero, por lo que veo, es un campo obligatorio en la clase Form.
(2) Me gustaría hacer la opción por defecto de AccountDetailsForm
un objeto en la base de datos, que puedo seleccionar en el Views
así:
User.objects.filter(account=accountid).filter(primary_user=1)
he intentado especificando el adminuser por defecto valor en el formulario, (que trabaja con otros campos del formulario estándar, como 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})
Pero no hubo suerte.
¿Debo utilizar algo diferente a ModelChoiceField
dada la flexibilidad que necesito aquí?
Gracias.
Hola, gracias por su respuesta. Configurar el queryset en la vista funcionó bien. La parte que no pude resolver es establecer el valor del formulario enlazado (en lugar del valor predeterminado) de ModelChoiceField como _User.objects.filter (account = accountid) .filter (primary_user = 1) _. Gracias. – eli