代码之家  ›  专栏  ›  技术社区  ›  Anpher

django admin:缺少某些记录的内联

  •  8
  • Anpher  · 技术社区  · 14 年前

    我在django管理站点和inlines上遇到了一些问题。我在谷歌上搜索了两天的解决方案,但什么也没有。

    我有两种型号:

    class Measurement(models.Model):
      user = models.ForeignKey(User)
      date = models.DateTimeField(auto_now_add=True)
      # etc
    
    class Media(models.Model):
      measurement = models.ForeignKey(Measurement)
      link = models.CharField(max_length=255, blank=True)
      description = models.TextField(blank=True)
      # etc
    

    管理站点的配置:

    class MediaInline(admin.StackedInline):
      model = Media
      extra = 0
    
    class MeasurementAdmin(admin.ModelAdmin):
      inlines = [MediaInline,]
    
    admin.site.register(Media)
    admin.site.register(Measurement, MeasurementAdmin)
    

    奇怪的是:管理站点显示了一些度量对象的入口,而不是其他度量对象的入口。即使相关记录在数据库中可见,整个表单集也不可见(不存在)。也, ValidationError: [u'ManagementForm data is missing or has been tampered with'] 对这些对象引发异常。有人处理过这个吗?

    1 回复  |  直到 14 年前
        1
  •  15
  •   Dmitry Shevchenko    14 年前

    在90%的案例中,我发现这是由于 __unicode__ 方法,Django在内联模板上使用该方法。