目前在我的管理员中,我有很多摘录,管理员用户可以创建,然后进入"女性"界面并附上摘录。是否可以在摘录管理员中添加选择字段,用户可以选择摘录所属的女性,而不是创建摘录并进入"女性"界面创建关系?
class Excerpt(models.Model):
extract = models.CharField(max_length=2000, null=True, blank=True)
audio_url = models.IntegerField(null=True, blank=True)
start_time = models.IntegerField(null=True, blank=True)
end_time = models.IntegerField(null=True, blank=True)
def __unicode__(self):
return self.extract
class Women(models.Model):
name = models.CharField(max_length=100)
location = models.ForeignKey(Location, null=True, blank=True)
excerpt = models.ManyToManyField(Excerpt, blank=True)
答案 0 :(得分:2)
考虑到您更改了我在评论中指出的关系,您需要先删除manytomany
中的Women
关系然后更改您的
Excerpt
模型了一下。你要做的是在你的Excerpt
模型中有一个外键到Women
那样,
class Excerpt(models.Model):
women = models.ForeignKey(Women, ...)
另一个答案有正确的方法,但执行错误,这是在你的情况下实现内联的正确方法,
class ExcerptInline(admin.TabularInline):
model = Excerpt
class WomenAdmin(admin.ModelAdmin):
inlines = [ExcerptInline]
你最终想要注册整个事情,
admin.site.register(Women, WomenAdmin)
现在,随意根据您的需求个性化所有内容,但这些是我认为您所寻找的基础知识。
答案 1 :(得分:0)
您可以使用TabularInline在摘录模型中选择女性
class ExcerptInline(admin.TabularInline):
model = Women.excerpt.through
extra = 0
show_change_link = True
def has_add_permission(self, request, obj=None):
return True
class ExcerptAdmin(admin.ModelAdmin):
list_display = ['start_time', 'end_time']
inlines = [ExcerptInline]
class WomenAdmin(admin.ModelAdmin):
list_display = ['name']
最后添加
admin.site.register(Women, WomenAdmin)
admin.site.register(Excerpt, ExcerptAdmin)