form_for_model(IDInternal) will autogenerate form elemnts to edit the model class ImageAddForm(BaseForm): def __init__(self, *args, name=None, **kwargs): super(ImageAddForm, self).__init__(*args, **kwargs) self.fields['category'].choices=(('a','a'),) # create filter based on name= ImageForm = form_for_model(Image, form=ImageAddForm) foo = ImageForm(name='foo') To get from draft to author list: >>> d = a[5] >>> print d draft-fenner-zinin-rtg-standard-reqts >>> print d.authors.all() [, ] >>> l=d.authors.all() >>> print l[0].person Bill Fenner >>> print l[0].person.emailaddresses_set.filter(priority=d.id_document_tag) [] >>> print l[0].person.emailaddresses_set.filter(priority=d.id_document_tag)[0].ail_address fenner@research.att.com IDAuthors should have an auxilliary function for this. It's the one that has the person linkage and knows the document. -- we should use a variant of django-registration. http://www.stonemind.net/blog/2007/04/13/django-registration-for-newbies/ 1. verify email address with round trip 2. if there's a row in iesg_login, use that username (? liaison tool logins ?) otherwise, force the email address 3. get a password and create the user (this is almost the same as resetting the password) 4. find the person_or_org_info row, associate that with the user row -- Both the regular and date-base object_detail can take either an +object_id, or a slug/slug_field combo. So use the username as the "slug" and specify 'username' as the +'slug_field' argument. http://www.b-list.org/weblog/2006/11/16/django-tips-get-most-out-generic-views newly learned: 'slug_field' just gets passed so can be otherdb__username