models.py and invoke it from forms.py.
Sorry about the heterogeneous names--some of
them match the document the requirements were
extracted from and others are more meaningful
to me. The former were picked because we'll
need a requirements cross-reference and they'll
be easier to match up with the requirements.
And the dashes in place of spaces--most of the
code examples I see here are almost unreadable
because of leading spaces disappearing.
I saw one example of replacing all but the last
leading space with '-', and it was more readable.
Regards
-- On Fri, Jan 20, 2012 at 11:22 PM, Dennis Lee Bieber <wlfraed@ix.netcom.com> wrote:
On Fri, 20 Jan 2012 19:44:16 -0800 (PST), Bill Beal
<b.beal@eximflow.com> wrote:
Caveat: I've only looked at Django, but not in enough detail to be
"expert"; my comments are based upon basic Python syntax/semantics (my
apologies to the developers, but I work better with printed
documentation and Django is too much of a moving target for the few
books that did come out to be relevant four months later)
Which is true -- it is not defined at that point. (NOTE: your names
>name 'scac_choicelist' is not defined at the marked
>line in my form:
>
don't really help understanding the purpose of the variables <G>)
Presuming the many "-"s represent indentation, "scac_choicelist" is
>from django import forms
>from django.forms.fields import ChoiceField
>from myapp.models import *
>
>BOL_CODE_QUALIFIERS = (
> ('OB', 'Ocean Bill of Lading (OB)'),
> ('BM', 'House Bill of Lading (BM)'),
>)
>
>class BolForm(forms.Form):
>- scac = forms.ChoiceField(
>----- label=u'Ocean Carrier',
>----- choices=scac_choicelist()) ######
>- bill_of_lading = forms.CharField(
>----- label=u'Bill of Lading #', max_length=50)
>- bol_type = forms.ChoiceField(
>----- label=u'Type of B/L',
>----- choices=BOL_CODE_QUALIFIERS)
>
>Here's my model:
>
>from django.db import models
>
>class Scac(models.Model):
>- code = models.CharField(max_length=4)
>- name = models.CharField(max_length=60)
>
>- def __unicode__(self):
>--- return self.code
>
>- def scac_choicelist():
>--- q = Scac.objects.all()
>--- scaclist = []
>--- for x in q:
>----- scaclist.append((x.code, x.name))
>----- return scaclist
a method of Scac. That means it should have at least one parameter: self
def scac_choicelist(self):
scaclist = []
for item in self.objects.all():
scaclist.append((item.code, item.name))
return scaclist
NOTE: based on your "-"s, your return statement is inside your loop, so
you'd be returning after processing only one element.
NOW... In the form module you need to reference an instance of the
model! The method itself is not visible.
Something like:
>- scac = forms.ChoiceField(
>----- label=u'Ocean Carrier',
>----- choices=scac_choicelist()) ######
>
scac = forms.ChoiceField( label=u"Ocean Carrier",
choices=Scac().scac_choicelist())
--
Wulfraed Dennis Lee Bieber AF6VN
wlfraed@ix.netcom.com HTTP://wlfraed.home.netcom.com/
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
No comments:
Post a Comment