On Thursday 12 November 2009 06:05:00 Sean Brant wrote:
> Let me start out by saying this feels a little over engineered but I
> wanted to see what people thought anyways.
> 
> I would like to create a list similar to a Facebook wall. You can post
> stuff and attach content to the post. In the past I have create a
> table with properties for all content formats and only set the one I
> was interested in. Thats bad cause you have all these empty fields for
> no reason. I have also just created foreign key to a separate content
> model (one for each format). That means you have to joins all the
> time. Since at the end of the day all of these formats are stored as
> strings, I can just use ONE content field. However I lose all the nice
> Image and File handling stuff Django gives you. So what if there was a
> ModelField that could change itself at runtime. Would I be better of
> doing this feature in a non-relational database and handling all the
> file upload stuff myself?
> 
> All content will be represented in the database as a VARCHAR. I'll add
> some pseudo code that might explain it better than i can.
> 
> choices = (
>     (0, 'note'),
>     (1, 'link'),
>     (2, 'image'),
> )
> 
> formats = (
>     (0, models.CharField, {'max_length': 200}),
>     (1, models.UrlField,),
>     (2, models.ImageField, {'upload_to': 'uploads'),
> )
> 
> class Item(models.Model):
>     title = models.CharField(max_length=200)
>     format = models.IntegerField(choices=choices, default=0)
>     content = MultiFormatField(formats=formats, format_field='format')
> # changes based on instance.format
> 
> Thanks for taking the time to read this over.
> 
> - Sean
> 
> --
How would generic.GenericForeignKey fit your needs?

http://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#id1

Mikr


Bringing computers into the home won't change either one, but may
revitalize the corner saloon.

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to