On 01/29/2012 12:18 PM, Bernardo Pires wrote:
> Good Morning guys!
> Scenario is the following. For some models on Django, I would like to
> allow the end user to define his own fields. It would be great if I
> could keep all Django awesome features like the ORM, so I can still do
> calls like field__gte to search on the model, still have field
> validation according to field type, etc. I've thought about two ways
> of doing this, and I'm more than open for new suggestions. Any
> feedback would be VERY appreciated.
> 
> 1. The first approach, is the Entity-Attribute-Value (
> http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model
> ), which django already has an app for. See 
> http://code.google.com/p/django-custom-field/
> I think this would be an OK solution, but I lose the ability to do
> "mymodel.objects.filter(custom_field_x=something)". Maybe there's a
> way to regain the ORM, any ideas? But I've heard so many bad stories
> about this method that I'm little scared to use it.
> 
> 2. The second approach would be to have a database table for each of
> the users (probably no more than a 1000). I've read django has
> something in the lines of inspectdb, which actually checks which
> fields are there and produces the model for you. This could be useful
> but I think maybe I should store the fields this particular user has
> created and somehow dinamically tell django, hey, we also have this
> fields in this model. Is this possible? I know it's generally bad to
> have different tables for each user, but considering this scenario,
> how would you guys rate this method, would it be ok to have one table
> for each user?
> 
> The model that requires custom fields is for example Person. They
> might want a custom field to store address, blood type, or any other
> thing.
> 
> MANY THANKS in advance! Have a nice sunday!
> Bernardo Pires
> 

Bernardo, Hello.

For other options checkout this guide:
http://stackoverflow.com/a/7934577/497056

Best regards,
Ivan Kharlamov

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.

Reply via email to