Re: Developing a flexible CMS

2007-06-29 Thread anderson . santos . br

Hello everyone, I am talking to a friend to find a good solution for
this question and finally write our own CMS. I am really thinking
about how to create a flexible CMS and don't break django or don't
rework a lot of stuff.
So, what I do believe is that we have to focus on a Management System
then Content, and a flexible system should be able to go as far as we
want.
So, I like the idea of a page, but I do believe that a "portlet" is
more useful then a page content. So, with this in mind, we have to
think about a subapplication to be shown on a page, and not a bit of a
rock to put on the screen. But, of course, the simplest portlet will
be just a "content-link", but if I want something more complex, I can
do it and without the necessity of to write a new template tag,
because, if I am not a programmer I will get stucked and Django
solution won't be my solution.

A CMS is to make my website easier to grow, and not to create
barriers.

And about managing multiple objects of a model, we MUST remember that
THERE IS Django's  Manager and that's what we have to work on. So, I
think that our answer for this question resides on there. Django is
flexible, powerful, but "young" and don't have "much" automated
because WE don't know the perfect solution yet. But I don't believe it
will be far from the actual implementation.

Not rework, but improve Django, that's the way for a Real django
powered CMS that I would like to see.





On 27 jun, 01:03, sime <[EMAIL PROTECTED]> wrote:
> Hi Kyle, I've run into the same problems before. I think you'll find
> Django admin is great for simple operations involving single records
> and the most basic relations. But for anything beyond that, you'll
> probably need to roll your own admin page.
>
> On Jun 25, 1:15 am, Kyle Fox <[EMAIL PROTECTED]> wrote:
>
> > I hope I can explain this well, because I've been wracking my poor
> > little brain trying to figure out how to do this :)
>
> > I'm trying to create a flexible CMS.  I want it to be easy for users
> > to create a Page, and attach all kinds of content ("components") to
> > that page.  These components would all be Model classes.  Here are two
> > simple examples of the components I had in mind:
>
> > class TextSnippet(models.Model):
> > body = models.TextField()
>
> > class Photo(models.Model):
> > image = models.ImageField(upload_to="photos")
>
> > The idea is that a user add an arbitrary number of these components to
> > a Page model.  A Page model is nothing more than a container to hold
> > components, and a URL associated with the Page, something like:
>
> > class Page(models.Model):
> > url = models.CharField( maxlength=100, unique=True,
> > validator_list=[validators.isAlphaNumericURL])
>
> > The problem is that I can't figure out a good way to associate
> > instances of TextSnippet and Photo with a page.  It's obviously a many-
> > to-many between the components and pages (a component like a photo can
> > be on many pages, and a page can have many components), but I also
> > need to store more information about that particular page-component
> > relationship, for example a IntegerField that specifies the
> > component's position on that page.  Here's what I've come up with so
> > far:
>
> > class PageComponent(models.Model):
> > page = models.ForeignKey(Page, related_name="components",
> > edit_inline=models.TABULAR)
> > content_type = models.ForeignKey(ContentType)
> > object_id = models.IntegerField(core=True)
> > position = models.IntegerField(default=0, blank=True)
>
> > It "works" not too bad.  Conceptually (from the shell), I think it
> > does what I want.  However, I'm having a HECK of a time getting the
> > Page form in the admin to work in an intuitive way.  When adding
> > components to a page, the user sees a drop-down list of content_types,
> > and has to enter an object_id.  It works for me because I know what to
> > put for the object_id, but a regular user wouldn't
>
> > I think this would require me to write a custom form class for adding
> > and editing a page, but with these relationships I really don't even
> > know where to begin :S
>
> > If anyone can provide advice (or just flat out tell me if I'm thinking
> > about this wrong), it would be much appreciated!
>
> > Thanks,
> > Kyle


--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~--~~~~--~~--~--~---



Re: Developing a flexible CMS

2007-06-26 Thread sime

Hi Kyle, I've run into the same problems before. I think you'll find
Django admin is great for simple operations involving single records
and the most basic relations. But for anything beyond that, you'll
probably need to roll your own admin page.

On Jun 25, 1:15 am, Kyle Fox <[EMAIL PROTECTED]> wrote:
> I hope I can explain this well, because I've been wracking my poor
> little brain trying to figure out how to do this :)
>
> I'm trying to create a flexible CMS.  I want it to be easy for users
> to create a Page, and attach all kinds of content ("components") to
> that page.  These components would all be Model classes.  Here are two
> simple examples of the components I had in mind:
>
> class TextSnippet(models.Model):
> body = models.TextField()
>
> class Photo(models.Model):
> image = models.ImageField(upload_to="photos")
>
> The idea is that a user add an arbitrary number of these components to
> a Page model.  A Page model is nothing more than a container to hold
> components, and a URL associated with the Page, something like:
>
> class Page(models.Model):
> url = models.CharField( maxlength=100, unique=True,
> validator_list=[validators.isAlphaNumericURL])
>
> The problem is that I can't figure out a good way to associate
> instances of TextSnippet and Photo with a page.  It's obviously a many-
> to-many between the components and pages (a component like a photo can
> be on many pages, and a page can have many components), but I also
> need to store more information about that particular page-component
> relationship, for example a IntegerField that specifies the
> component's position on that page.  Here's what I've come up with so
> far:
>
> class PageComponent(models.Model):
> page = models.ForeignKey(Page, related_name="components",
> edit_inline=models.TABULAR)
> content_type = models.ForeignKey(ContentType)
> object_id = models.IntegerField(core=True)
> position = models.IntegerField(default=0, blank=True)
>
> It "works" not too bad.  Conceptually (from the shell), I think it
> does what I want.  However, I'm having a HECK of a time getting the
> Page form in the admin to work in an intuitive way.  When adding
> components to a page, the user sees a drop-down list of content_types,
> and has to enter an object_id.  It works for me because I know what to
> put for the object_id, but a regular user wouldn't
>
> I think this would require me to write a custom form class for adding
> and editing a page, but with these relationships I really don't even
> know where to begin :S
>
> If anyone can provide advice (or just flat out tell me if I'm thinking
> about this wrong), it would be much appreciated!
>
> Thanks,
> Kyle


--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~--~~~~--~~--~--~---



Developing a flexible CMS

2007-06-24 Thread Kyle Fox

I hope I can explain this well, because I've been wracking my poor
little brain trying to figure out how to do this :)

I'm trying to create a flexible CMS.  I want it to be easy for users
to create a Page, and attach all kinds of content ("components") to
that page.  These components would all be Model classes.  Here are two
simple examples of the components I had in mind:

class TextSnippet(models.Model):
body = models.TextField()

class Photo(models.Model):
image = models.ImageField(upload_to="photos")

The idea is that a user add an arbitrary number of these components to
a Page model.  A Page model is nothing more than a container to hold
components, and a URL associated with the Page, something like:

class Page(models.Model):
url = models.CharField( maxlength=100, unique=True,
validator_list=[validators.isAlphaNumericURL])

The problem is that I can't figure out a good way to associate
instances of TextSnippet and Photo with a page.  It's obviously a many-
to-many between the components and pages (a component like a photo can
be on many pages, and a page can have many components), but I also
need to store more information about that particular page-component
relationship, for example a IntegerField that specifies the
component's position on that page.  Here's what I've come up with so
far:

class PageComponent(models.Model):
page = models.ForeignKey(Page, related_name="components",
edit_inline=models.TABULAR)
content_type = models.ForeignKey(ContentType)
object_id = models.IntegerField(core=True)
position = models.IntegerField(default=0, blank=True)


It "works" not too bad.  Conceptually (from the shell), I think it
does what I want.  However, I'm having a HECK of a time getting the
Page form in the admin to work in an intuitive way.  When adding
components to a page, the user sees a drop-down list of content_types,
and has to enter an object_id.  It works for me because I know what to
put for the object_id, but a regular user wouldn't

I think this would require me to write a custom form class for adding
and editing a page, but with these relationships I really don't even
know where to begin :S

If anyone can provide advice (or just flat out tell me if I'm thinking
about this wrong), it would be much appreciated!

Thanks,
Kyle


--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~--~~~~--~~--~--~---