Django管理站点根据输入自动填充下拉框

3 投票
2 回答
2226 浏览
提问于 2025-04-15 20:22

你好,我有一个这样的模型:

    Team_one = models.ForeignKey('Team', related_name='Team_one') 
    Team_two = models.ForeignKey('Team', related_name='Team_two') 
    Stadium = models.CharField(max_length=255, blank=True)
    Start_time = models.DateTimeField(auto_now_add=False, auto_now=False, blank=True, null=True)
    Rafree = models.CharField(max_length=255, blank=True)
    Judge = models.CharField(max_length=255, blank=True)
    Winner = models.ForeignKey('Team', related_name='winner', blank=True)    
    updated = models.DateTimeField('update date', auto_now=True )
    created = models.DateTimeField('creation date', auto_now_add=True )
    def save(self, force_insert=False, force_update=False):
      pass

   @models.permalink
   def get_absolute_url(self):
       return ('view_or_url_name')
class MatchAdmin(admin.ModelAdmin):
   list_display = ('Team_one','Team_two', 'Winner')
   search_fields = ['Team_one','Team_tow']

 admin.site.register(Match, MatchAdmin)

我在想,是否有办法在管理员网站上选择了队伍一和队伍二后,自动填充获胜者的下拉框?

2 个回答

0

你需要用到 django-smart-selects 这个工具。

1

用Django的后台管理系统来实现这个功能其实没那么简单。虽然是可以做到的,但你需要替换掉后台的表单,并且用一些JavaScript代码来把“团队”复制到指定的框里。这比实际需要的工作量要大得多。

如果我是你,我会直接设置“胜利团队”和“失败团队”这两个字段。

另外,建议你看看这个链接:http://www.python.org/dev/peps/pep-0008/

撰写回答