Hi Mario, a few months ago I posted a snippet on djangosnippets [1] that kind of does something like this: it takes a form (can be the same one you use for editing) and displays it as read-only. The disadvantage is it uses the entire form machinery just to display some values, which is a lot of overhead, the advantage is I have quick and dirty display of data without much extra work (I have my own generic view wrapped around this). It needs a lot of improvement, but it works ok for me for now.
Koen [1]: http://www.djangosnippets.org/snippets/758/ On 26 aug, 20:00, Mario Hozano <[EMAIL PROTECTED]> wrote: > Hi People. > > I am new in Django and I am using the django support to create generic > views (CRUD) in my app. To handle Create and Show actions, i have > written 2 main pages with the code snippets described below. > > baseform.html > {% for field in form %} > <dt>{{ field.label_tag }}{% if field.field.required %}*{% endif > %}</dt> > <dd>{{ field }}</dd> > {% if field.help_text %}<dd>{{ field.help_text }}</dd>{% endif %} > {% if field.errors %}<dd class="myerrors">{{ field.errors }}</ > dd>{% endif %} > {% endfor %} > > baseshow.html. > {% for key, value in object.as_dict.items %} > <dt>{{ key.capitalize }}</dt> > <dd>{{ value }}</dd> > {% endfor %} > > These pages are called directly from my urls.py that uses the Generic > views supported by django. In this sense, the baseform.html can be > used by all model classes, because the ModelForm handles the > presentation of each model attribute (excluding id) transparently. > > In baseshow.html I need to show the same attributes of a given model > class, as done in baseform.html. In this case, the attributes > (excluding id) must be presented in a read-only mode, with html labels > instead of input widgets. To do it, i've implemented a "as_dict" > method in each model class. This method only returns the > "self.__dict__" attribute of the model classes, hence, the private > attributes cannot be acessed from templates. > > The solution presented works, but it is ugly, because the id attribute > must be verified on template and it needs to adjust the model class to > work fine. > > Does Django offer another way to present the model attributes in a > Show view? Is it possible to use a ModelForm class to show the > attribute values in html labels? > > Thanks. > Mario Hozano --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---