[Zope3-Users] Access request object from content_factory

mats.nordgren mats at ronin-group.org
Wed Jun 21 00:37:35 EDT 2006


John,

I have never done it with the addform approach but it is very easily done with formlib.

class MyContentAddForm(form.AddForm):
  form_fields = form.Fields(IMyContent)

  def __init__(self, context, request):
    self.context = context
    self.request = request

  def create(self, data):
    mycontent = MyContent()
    mycontent.title = data['title']
    mycontent.user = self.request.principal.id
    return mycontent

Register it as a page in your config file

<page
  for=".content.MyContent"
  name="AddContent.html"
  class=".forms.MyContentAddForm"
  permission="zope.ManageContent" />

Cheers,

Mats

  

On Tue, 20 Jun 2006 22:42:18 +0100 (BST), John Smith wrote
> Hi,
> 
> I am trying to add some request related data into a content object (eg authenticated user etc).
> 
> The content is being added using a normal addform/content_factory zcml approach.
> 
> The class __init__ method does not receive any arguments, and the context/request pair are only available inside of views.
> 
> So I am stumped.
> 
> How do I get at the request object? A utility? An adaptor?
> 
> Thanks,
> 
> John
> 
>  
-----------------------------------------------------------------------
 Try the all-new Yahoo! Mail . "The New Version is radically easier to use" – The Wall Street Journal


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.zope.org/pipermail/zope3-users/attachments/20060620/8cc18592/attachment.htm


More information about the Zope3-users mailing list