I have the following model and admin defined in djando 1.5. This is a many-to-many relationship between subnet and vlan. I use the related_name parameter in the ManyToMany field to get the vlan assembly from the associated subnet object. Adding a subnet to vlans by admin works fine. However, when I try to add horizontal_filer to the subnet administrator in order to add van to my vlan set, I get an error message indicating that the vlans attribute does not exist. I am using a subnet object in some view and I can access the vlans attribute just right.
What am I doing wrong here? I saw a similar record, but I could not successfully adapt any proposed solution.
thanks for the help
model.py
from django.db import models class Subnet(models.Model): networkAddress = models.CharField(max_length=15) size = models.IntegerField() def __unicode__(self): return "%s/%s" % (self.networkAddress, self.size) class IpAddress(models.Model): ipAddress = models.CharField(max_length=15) subnet = models.ForeignKey(Subnet) def __unicode__(self): return "%s" % (self.ipAddress) class Vlan(models.Model): number = models.IntegerField() description = models.CharField(max_length=150) subnets = models.ManyToManyField(Subnet, related_name='vlans', blank=True) def __unicode__(self): return "VLAN %s (%s)" % (self.number, self.description)
admin.py
from network.models import Subnet, IpAddress, Vlan from django.contrib import admin class SubnetAdmin(admin.ModelAdmin): filter_horizontal = ('vlans',) admin.site.register(Subnet, SubnetAdmin) admin.site.register(IpAddress) admin.site.register(Vlan)
and the error i get
Request Method: GET Request URL: http://127.0.0.1:8000/admin/ Django Version: 1.5.2 Exception Type: ImproperlyConfigured Exception Value: 'SubnetAdmin.filter_horizontal' refers to field 'vlans' that is missing from model 'network.Subnet'.
django django-models django-orm django-admin django-admin-filters
Olivier cant
source share