[Zope3-Users] Newbie relationship question

Albertas Agejevas alga at pov.lt
Wed Jul 26 13:49:11 EDT 2006


On Wed, Jul 26, 2006 at 06:33:50PM +0200, Carlo Cardelli wrote:
> class IInvoice(Interface):
>     invRef = Int(
>         title=u"Ref.no",
>         description=u"Invoice reference number",
>         min=1,
>         required=True
>         )
>     invDate = Date(
>         title=u"Date",
>         description=u"Invoice Date",
>         required=True
>         )
>     invCust = Object(
>         schema=ICustomer,
>         title=u"Customer",
>         description=u"Customer",
>         required=True
>         )
>     ... other ininfluent fields...
> 
> 
> Now, I have to render the 'invCust' object as a selection-list showing 
> the custNames of all possible Customers, where the user can select the 
> appropriate Customer for the Invoice. Editing the Invoice, the 
> selection-list should position itself showing the Customer set previously.
> In other words, I need a widget that somewhat behave like 
> "Plone.Archetypes.ReferenceWidget".
> I know that this is a very basic problem. Anyone already implemented it?

What you need to do is define the customer field as a choice in the interface:

    class IInvoice(Interface):
	...
	invCust = Choice(title=u"Customer",
			 vocabulary="Customers")

and define the "Customers" vocabulary, that will list all customers in
your app.  Look at zope.schema.vocabulary.SimpleVocabulary.

Albertas


More information about the Zope3-users mailing list