I've got my models setup in Django where a Document is a model that can be
related to a Transaction.
Now I'd like to make a DocumentForm with a dropdown of Transactions owned
by the current Client, so that a client can say that this Document is
related to this Transaction.
So I wrote some code that looks like this:
class DocumentForm(forms.ModelForm):
path = forms.FileField(label='Choose a file')
description = forms.CharField(label='What is it?')
related_to = forms.ModelChoiceField(queryset=Transaction.objects.none())
class Meta:
model = Document
fields = ['description', 'path', 'related_to']
def __init__(self, *args, **kwargs):
super(DocumentForm, self).__init__(*args, **kwargs)
self.fields["related_to"].queryset = Transaction.objects.filter(
client=self.data.client)
So now I can do:
d = Document()
DocumentForm(d)
and the related_to field in this DocumentForm will automatically be
populated by Transactions owned by the current client.
The problem is, when Document() isn't yet saved to the db, it isn't
associated with a client. So DocumentForm's self.data.client will throw an
exception, and I can't test for it with if.
So I'm thinking of just using try/except and doing nothing on except.
Is there a better way to do this? I heard that you shouldn't use exceptions
for control flow, but here it looks like I am.
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/6cce68bc-03be-4a8c-a58b-ec9b0bf43153%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.