首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TabularInline在Django管理中的若干问题

TabularInline在Django管理中的若干问题
EN

Stack Overflow用户
提问于 2016-11-11 17:53:41
回答 1查看 686关注 0票数 0

我正在将一个访问应用程序移植到Python/Django。有一个SchoolInfo表和一个带有指向SchoolInfo表的外键的校园表。在Access中,我将一个校园子表单(连续)嵌入到SchoolInfo表单中,匹配字段被正确定义为指向School_ID。因此,对于学校1,我只显示该学校的校园。

在Django中,我将SchoolInfo表添加到Admin中,并试图使用TabularInline复制Access UI。下面是模型和管理的片段:

代码语言:javascript
复制
class Schoolinfo(models.Model):
    school_id = models.AutoField(db_column='School_ID', primary_key=True)  # Field name made lowercase.
    schoolcode = models.CharField(db_column='SchoolCode', max_length=10)  # Field name made lowercase.
    schoolname = models.CharField(db_column='SchoolName', max_length=50, blank=True, null=True)  # Field name made lowercase.

class Campuses(models.Model):
    campus_id = models.AutoField(db_column='Campus_ID', primary_key=True)  # Field name made lowercase.
    campusno = models.IntegerField(db_column='CampusNo', default=1)  # Field name made lowercase.
    schoolcode = models.CharField(db_column='SchoolCode', max_length=10)  # Field name made lowercase.
    school = models.ForeignKey('Schoolinfo', models.DO_NOTHING, db_column='School_ID', unique=True)  # Field name made lowercase.#  school = models.IntegerField(db_column='School_ID')  # Field name made lowercase.
    campusname = models.CharField(db_column='CampusName', max_length=15, blank=True, null=True)  # Field name made lowercase.

class CampusesInline(admin.TabularInline):
    model = Campuses

admin.site.register(Campuses) 

class SchoolInfoAdmin(admin.ModelAdmin):
    fields = (
    ('schoolcode', 'schoolname'), ('contactname', 'contacttitle'), ('contactphone', 'contactemail'), 
    ('clockhoursschool', 'schoolsendsawardletters'), ('tin_no', 'duns_no'), ('pell_id', 'ope_id'))

    save_on_top = True
    inlines = [CampusesInline,]

admin.site.register(Schoolinfo, SchoolInfoAdmin)

当我选择一所学校进行编辑时,它正确地显示了学校字段,然后显示了校园的TabularInline,但问题是:

数据库中有多所学校,每个学校都有一个或更多的校园。TabularInline正确地显示了活动学校的校园或校园,但它也有一些空白记录(我认为这些记录与其他学校的校园记录有关)。

如果我在外键中添加"unique=True“(如上面的模型所示),空白记录就会消失,而且看起来都很好。不幸的是,我还在内联的底部搜索链接,以添加一个新的校园。

我对Python/Django非常陌生,所以不知道如何解决这个问题。我想我的选择是内联中的某种类型的筛选(并从模型中取出unique=True ),或者保留它,并研究如何恢复内联的"add“链接。

对于如何解决这个问题,有什么建议吗?谢谢..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-12 13:13:11

但它也有几个空白记录(我认为这与其他学校的校园记录有关)。

这些“空白”记录是为了给学校增加新校区。您可以在CampusInline上使用“附加”属性来控制空行数。

如果我在外键中添加"unique=True“(如上面的模型所示),空白记录就会消失,而且看起来都很好。不幸的是,我还在内联的底部搜索链接,以添加一个新的校园。

如果在“学校”字段中添加“独特”,则意味着学校只能在校园表中出现一次。这(通常)对外键没有多大意义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40553574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档