Thanks christian, it worked!!.

On 8 jun, 12:21, "christian.posta" <christian.po...@gmail.com> wrote:
> Well, there are a couple things you could do:
>
> for the PresupuestoAdminForm, you could do this to the CharField:
> name = forms.CharField(max_length=100,
> widget=forms.TextInput(attrs={'readonly': 'readonly'}))
> (note the CharField is from the 'forms' package, not the 'models'....
> you'll also need to remove the 'name' entry from the readonly_fields
> tuple)
>
> Alternatively, you could ignore using the custom ModelForm, and add
> the 'name' field directly to the PresupuestoAdmin class. In that case
> you can use the readonly_fields tuple.
>
> I would probably go with the first choice since it will allow you to
> write a custom query to populate the field in the constructor.
>
> Example:
>
> class StoreAdminForm(forms.ModelForm):
>     test = forms.CharField(max_length=100,
> widget=forms.TextInput(attrs={'readonly': 'readonly'}))
>
>     def __init__(self, *args, **kwargs):
>         super(StoreAdminForm, self).__init__(*args, **kwargs)
>
>         if kwargs.has_key('instance'):
>             instance = kwargs['instance']
>             # do something with the instance here, like use it to
> calculate something,
>             # then set the value on the 'test' field using
> self.fields['test']
>
>     class Meta:
>         model = Store
>
> Good luck!
>
> On Jun 7, 9:16 am, mf <mf2...@gmail.com> wrote:
>
>
>
>
>
>
>
> > Thanks christian. I've followed your good advice but I don't know why
> > am I getting  this error: "PresupuestoAdmin.readonly_fields[1], 'name'
> > is not a callable or an attribute of 'PresupuestoAdmin' or found in
> > the model 'Presupuesto' ". It seems that the 'name' field is not added
> > to the form used by the admin.
>
> > class PresupuestoAdminForm(forms.ModelForm):
> >     name = models.CharField(max_length=100)
>
> >     class Meta:
> >         model = Presupuesto
>
> > class PresupuestoAdmin(admin.ModelAdmin):
> >     form = PresupuestoAdminForm
>
> >     fieldsets = (
> >         (None, {
> >             'fields': (('id', 'fecha_emision', ), ('obra',
> > 'num_pres_ext',),
> >             'proveedor', 'descripcion', 'observaciones',
> > 'importe_contratado',)
> >         }),
> >     )
> >     readonly_fields = ('id', 'name',)
>
> > admin.site.register(Presupuesto, PresupuestoAdmin)
>
> > On 7 jun, 11:11, "christian.posta" <christian.po...@gmail.com> wrote:
>
> > > Create a different ModelForm that contains your readonly fields (and
> > > populate them however you want) and set this on your ModelAdmin form.
>
> > > See the ModelAdmin.form option in the 
> > > docs.https://docs.djangoproject.com/en/1.2/ref/contrib/admin/#modeladmin-o...
>
> > > On Jun 7, 6:01 am, mf <mf2...@gmail.com> wrote:
>
> > > > Let's say I've two models:
>
> > > >     class Book(models.Model):
> > > >         name = models.CharField(max_length=50)
> > > >         library = models.ForeignKeyField('Library')
>
> > > >     class Library(models.Model):
> > > >         name = models.CharField(max_length=50)
> > > >         address = models.CharField(max_length=50)
> > > >         tel = models.CharField(max_length=50)
>
> > > > Is there a nice way to add some html(a readonly input field) between
> > > > name and address in the Library change_form template?. I'm doing it
> > > > overriding [admin/includes/fieldset.html][1] but it's getting messy
> > > > and I can't find a way to display the html exactly where I want to.
> > > > For example, if I want to add html displaying the amount of books that
> > > > the library has below the name field I woul do this:
>
> > > >     {% for field in line %}
> > > >         ...
> > > >         {% if field.field.name == 'name' %}
> > > >             {{ field.field }}
> > > >             <div class="form-row total_books">
> > > >                 <div>
> > > >                     <label for="total_books">Total books:</label>
> > > >                     <input type="text" maxlength="10" name="totbooks"
> > > > id="totbooks" readonly="readonly">
> > > >                 </div>
> > > >            </div>
> > > >         {% else %}
> > > >             {{ field.field }}
> > > >         {% endif %}
> > > >         ...
> > > >     {% endfor %}
>
> > > >   
> > > > [1]:https://code.djangoproject.com/browser/django/trunk/django/contrib/ad...

-- 
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 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to