Ich möchte, dass das Formular nur die Konten des aktuellen Benutzers im ChoiceField anzeigt. Ich habe versucht, das Folgende zu tun, aber es funktioniert nicht.
Edit: Sorry, ich habe vergessen, das "if kwargs" zu erwähnen, das ich hinzugefügt habe, weil die TransForm() keine Felder anzeigt. Ich denke, das ist falsch, aber ich weiß nicht, einen anderen Weg.
views.py:
def in(request, account):
if request.method == 'POST':
form = TransForm(request.user, data=request.POST)
if form.is_valid():
...
else:
form = TransForm()
context = {
'TranForm': form,
}
return render_to_response(
'cashflow/in.html',
context,
context_instance = RequestContext(request),
)
forms.py:
class TransForm(ModelForm):
class Meta:
model = Trans
def __init__(self, *args, **kwargs):
super(TransForm, self).__init__(*args, **kwargs)
if kwargs:
self.fields['account'].queryset = Account.objects.filter(user=args[0])
1 Stimmen
Was bedeutet "funktioniert nicht"? Haben Sie keine Wahlmöglichkeiten? Haben Sie zu viele?
0 Stimmen
Und versuchen Sie .choices anstelle von .queryset, da das Queryset zu diesem Zeitpunkt bereits ausgewertet worden sein kann
0 Stimmen
Ich meine, ich bekomme alle Konten, nicht nur die Benutzerkonten.