【问题标题】:Django inlines working on Dev server, yet not on Apache Test server?Django 内联在开发服务器上工作,但不在 Apache 测试服务器上?
【发布时间】:2011-07-02 02:38:49
【问题描述】:

我遇到了一个问题,即内联管理功能在不同环境中的行为不同。

在 Dev 中,编辑技术时,我会在底部看到一个链接,可以根据需要添加更多滚动修改器,这些修改器可以完美运行。

在测试中,我得到一个没有添加更多链接的滚动修改器,并且它默默地无法保存我对滚动修改器所做的任何更改。

相同的代码部署到两个环境。有什么想法吗?

开发服务器配置(实际上是桌面)

  • Gentoo Linux
  • Django 1.3
  • SQLLite3 数据库(本地存储)
  • Django 内置开发服务器
  • Python 2.6.6

测试服务器配置

  • SuSE Linux 11.4
  • Django 1.3(也尝试使用 Django 1.2.5)
  • PostgreSQL 9.0.3
  • Apache2 2.2.17
  • Python 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)

【问题讨论】:

  • 嗯,将我的开发环境指向测试数据库似乎仍然可以正常工作。这意味着要么是我忘记部署某些东西(虽然想不出什么,可以确认明显的候选者在那里),要么 SuSE Django 安装与 Gentoo 不同(尽管 Gentoo ebuild 似乎没有引入任何补丁...)
  • 啊哈! - 由于某种原因,它无法从测试服务器上的 Admin Media 文件夹中获取 javascript,但可以在 Dev 上获取。

标签: python django django-admin inlines


【解决方案1】:

想通了。前段时间我将 Django 管理文件复制到 /var/www/media/admin 和别名 /media/ 到 /var/www/media/

这意味着它正在提供旧的媒体文件——给我工作的 CSS/图像,但默默地找不到 JavaScript——StackedInline 管理界面依赖于它来完成工作。

我看到的单个 TechnologyRollModifier 是隐藏模板,实际上并没有记录任何要输入的数据。

又一个谜团解开了......

【讨论】:

  • 两天过去了才让我。
  • 哦。不知道。顺便说一句:对不起我的评论语气很严厉。这听起来像一个命令。不是故意的;)
猜你喜欢
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 2017-11-17
相关资源
最近更新 更多