thanks tracy, i'd tried something very similar to Daniels method and failed, but your code worked first time.
On Aug 15, 12:36 pm, Karen Tracey <kmtra...@gmail.com> wrote: > On Mon, Aug 15, 2011 at 4:51 AM, i...@webbricks.co.uk > <i...@webbricks.co.uk>wrote: > > > > > > > > > > > > > I want to display the Level of the Category that the product belongs > > to, in the admin page for the Product. snipped a lot of the > > unimportant fields out of the display below. > > > class Category(models.Model): > > name = models.CharField(max_length=50, default=False) > > level = models.IntegerField(help_text="1, 2 ,3 or 4") > > > class Product(models.Model): > > category = models.ForeignKey(Category) > > name = models.CharField(max_length=100) > > > prepopulated_fields = {'slug': ('name',)} > > fieldsets = [ > > ('Product Info',{'fields': ['name', > > 'slug','partno','description']}), > > ('Categorisation',{'fields': ['brand','category']}), > > > You can do this so long as you only want to display the level, and not > > change it from the Product edit page. Admin was not designed to allowed > editing of related-model attributes so you cannot do that. But with readonly > fields you can easily display information: > > 1 - Define a method on Product that returns the information you want, eg: > > def category_level(self): > try: > return u'%s' % self.category.level > except Category.DoesNotExist: > return u'No Category' > > (You need to allow for Category not existing since it will not exist on an > add page.) > > 2 - Include that method in readonly_fields and wherever you want it in your > fieldsets, eg: > > class ProductAdmin(admin.ModelAdmin): > readonly_fields = ['category_level'] > fieldsets = [ > ('Product Info',{'fields': ['name', etc etc etc ]}), > ('Categorisation',{'fields': ['category', 'category_level']}), > ] > > Karen > --http://tracey.org/kmt/ -- 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.