私はdjando 1.5で定義された次のモデルと管理者を持っています。これは、サブネットと VLAN の間の多対多の関係です。ManyToMany フィールドで related_name オプションを使用して、関連するサブネット オブジェクトから vlan のコレクションを取得できるようにします。管理者から VLAN にサブネットを追加するとうまくいきます。ただし、vlan セットに van を追加するためにサブネット admin に horizontal_filer を追加しようとすると、vlans 属性が存在しないというエラーが表示されます。一部のビューでサブネット オブジェクトを使用しており、vlans 属性に正しくアクセスできます。
ここで何が間違っていますか?同様の投稿を見たことがありますが、提案されたソリューションをうまく適応させることができませんでした。
ご協力いただきありがとうございます
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)
そして私が得るエラー
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'.