我有一个关于网球网络的简单 Django 项目。我想在我的管理界面中用玩家的名字预填充一个水平过滤器。此外,有些玩家可以在晚上 7 点玩,而其他玩家可以在晚上 9 点玩。我的 model.py 如下:
class thursday(models.Model):
date = models.DateField()
time_first = models.ManyToManyField(player, related_name='firsttime', verbose_name='7PM')
time_second = models.ManyToManyField(player, related_name='secondtime', verbose_name='9PM')
和我的admin.py:
class ThursdayAdmin(admin.ModelAdmin):
list_display = ('date', 'status')
search_fields = ['date']
filter_horizontal = ('time_first', 'time_second',)
list_filter = ('date',)
fieldsets = (
(None, {
'fields': ('date', 'time_first', 'time_second', 'status')
}),
)
显然,我想预填充水平“time_first”过滤器,其中只有可以在晚上 7 点播放的播放器,并且同上。 这怎么可能?
提前致谢。
请您参考如下方法:
感谢您的帮助。我在 davydany's website 上找到了一个很好的解决方案:
time_first = models.ManyToManyField(player, related_name='firsttime', verbose_name='7PM', limit_choices_to={'id__in': player.objects.filter(preference='7PM')})
我希望这对其他人有帮助。
