1

インライン管理機能の動作が環境によって異なるという問題があります。

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)
4

1 に答える 1

0

理解した。少し前に、Django 管理ファイルを /var/www/media/admin にコピーし、エイリアス /media/ を /var/www/media/ にコピーしました。

これは、古いメディア ファイルを提供していたことを意味します - 機能する CSS / 画像を提供しますが、JavaScript を見つけることができませんでした - StackedInline 管理インターフェイスが作業を行うために依存しています。

私が見た 1 つの TechnologyRollModifier は、非表示のテンプレートであることを意図しており、実際には入力するデータを記録していませんでした。

また謎が解けた……。

于 2011-07-02T04:07:22.300 に答える