Mam klasy zdefiniowane Django Form lubi to w Models
:Django ModelChoiceField: filtrowanie zapytanie i ustawień domyślną wartość jako przedmiot
class AccountDetailsForm(forms.Form):
...
adminuser = forms.ModelChoiceField(queryset=User.objects.all())
To działa OK, ale ma pewne ograniczenia, nie wydaje się obejść:
(1) Chciałbym użyć filtru na queryset, opartego na zmiennej accountid
przeszedł do formy, na przykład:
User.objects.filter(account=accountid)
To nie działa w modelu, ponieważ accountid
nie można oczywiście przekazać jako zmiennej.
Wynika z tego, że queryset
musi być w jakiś sposób zdefiniowany w Views
, ale o ile widzę, jest to wymagane pole w klasie Form.
(2) Chciałbym dokonać wyboru domyślnej AccountDetailsForm
obiekt w bazie danych, które można wybrać w Views
jak ten:
User.objects.filter(account=accountid).filter(primary_user=1)
Próbowałem określając adminuser jako domyślny wartość w postaci, (która współpracuje z innymi standardowymi pól formularza, jak 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})
Ale bez powodzenia.
Czy powinienem używać czegoś innego niż ModelChoiceField
ze względu na elastyczność, której tutaj potrzebuję?
Dzięki.
Witam, dzięki za odpowiedź. Ustawienie zestawu zapytań w widoku działało dobrze. Częścią, której nie mogłem wypracować, jest ustawienie powiązanej wartości formularza (zamiast domyślnej) ModelChoiceField jako _User.objects.filter (account = accountid) .filter (primary_user = 1) _. Dzięki. – eli