【问题标题】:cannot add inline to django site admin framework无法将内联添加到 django 站点管理框架
【发布时间】:2014-08-20 18:04:29
【问题描述】:

admin.py 如下:-

class SiteDetailInline(admin.TabularInline):
    model = SiteDetail 
    form = SiteDetailForm
    fields = ('name', )
    can_delete = False
    extra = 1
    max_num = 1

    def get_readonly_fields(self, request, obj=None):
       if obj:
           return ('clmsid',) + self.readonly_fields
       return self.readonly_fields

class SiteAdmin(admin.ModelAdmin):
    inlines = [ SiteDetailInline, ]
    def queryset(self, queryset):
        return Site.objects.filter(~Q(id = settings.SITE_ID))
    signals.post_save.connect(create_sites_default_user, sender=Site)

admin.site.unregister(Site)
admin.site.register(Site, SiteAdmin)

models.py 如下:-

class SiteDetail(models.Model):
    name = models.CharField(max_length=100, unique=True)
    client = models.ForeignKey(client)
    site = models.ForeignKey(Site)
    clmsid = models.CharField(max_length=15, unique=True, verbose_name='clms id', help_text='clms identifier', ) # unique identifier L-XXXXXX-id

    def save(self, *args, **kwargs):
        if "L-" != self.clmsid[:2]:
            self.clmsid = "%s-%s-%s" % ("L", self.accountid, self.id)
        super(SiteDetail, self).save(*args, **kwargs)

    def __unicode__(self):
        return u''

我想在站点框架的管理员中内联显示额外的站点详细信息。它没有给出任何错误。但是,站点详细信息不会内联显示。请让我知道,我做错了什么。提前致谢。

【问题讨论】:

  • 请帮忙,我被这个严重卡住了
  • 请为 SiteDetailForm 添加您的代码
  • 如果你在form = ...这一行评论它会起作用吗?

标签: python django django-admin django-sites


【解决方案1】:

试试这个

def get_fields(self, request, obj=None):
    if obj:
       return ('clmsid',) + self.fields
    return self.fields

【讨论】:

    猜你喜欢
    • 2016-02-18
    • 2015-01-22
    • 2012-10-12
    • 1970-01-01
    • 2010-12-29
    • 2017-10-24
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    相关资源
    最近更新 更多