インライン管理機能の動作が環境によって異なるという問題があります。
Dev では、テクノロジーを編集するときに、必要に応じて完璧に機能するロール モディファイアを追加するためのリンクが下部に表示されます。
テストでは、さらに追加するためのリンクのない単一のロール モディファイアを取得し、ロール モディファイアに加えた変更を黙って保存できません。
同じコードが両方の環境にデプロイされます。ここで何が起こっているのでしょうか?
開発サーバー構成 (実際にはデスクトップ)
- ジェンツー Linux
- ジャンゴ1.3
- SQLLite3 データベース (ローカルに保存)
- Django 組み込み開発サーバー
- パイソン 2.6.6
サーバー構成のテスト
- SuSE Linux 11.4
- Django 1.3 (Django 1.2.5 でも試しました)
- PostgreSQL 9.0.3
- アパッチ2 2.2.17
- パイソン 2.7
付録 A - モデル コード
class Technology(models.Model):
categories = (
('weap' , 'Weaponry'),
('equip', 'Equipment'),
('cons' , 'Construction'),
('ammo' , 'Ammunition'),
)
name = models.CharField(max_length=40)
category = models.CharField(max_length=8, choices=categories)
urlname = models.CharField(max_length=20)
description = models.TextField()
base_difficulty = models.IntegerField()
tier = models.IntegerField()
show = models.BooleanField()
def __unicode__(self):
return self.name
class TechnologyRollModifier(models.Model):
technology = models.ForeignKey(Technology)
modifier = models.IntegerField(default=2)
condition = models.CharField(max_length=120)
付録 B - 管理コード
from django.contrib import admin
from solaris.warbook import models
class TechnologyRollModifierInline(admin.StackedInline):
model = models.TechnologyRollModifier
extra = 0
class TechnologyAdmin(admin.ModelAdmin):
fields = ['name', 'urlname', 'description', 'tier', 'category', 'base_difficulty', 'show']
inlines = [TechnologyRollModifierInline,]
admin.site.register(models.Technology, TechnologyAdmin)