【发布时间】:2021-11-01 04:46:35
【问题描述】:
我有一个包含 1000 多首歌曲的数据库。我有一个自定义模型“Schedule”,它接受歌曲作为字段。
models.py
from django.db import models
class Song(models.Model):
title = models.CharField(max_length=255)
words = models.TextField()
slug = models.SlugField()
date = models.DateTimeField(auto_now_add=True)
snippet = models.CharField(max_length=50)
def __str__(self):
return self.title
class Schedule(models.Model):
songs = models.ManyToManyField(Song)
date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return str(self.date)
admin.py
from django.contrib import admin
from .models import Song, Schedule
@admin.register(Song)
class SongModel(admin.ModelAdmin):
search_fields = ('title',)
list_display = ('title',)
list_per_page = 100
@admin.register(Schedule)
class ScheduleModel(admin.ModelAdmin):
search_fields = ('date',)
list_display = ('date',)
list_per_page = 100
我希望能够将任何我想要的歌曲添加到时间表中,但是通过 Django-Administration 中的默认列表(looks like this)很难做到这一点。我必须滚动并 CTRL+选择它们中的每一个,然后添加它们。
我想要更实用的东西,我可以选择、搜索等。
我有哪些选择?我不知道从哪里开始寻找。
【问题讨论】:
-
我猜您正在寻找的是管理操作,它可以让您执行搜索并选择多个而不会丢失您的选择并一次实施它们。看看这个https://docs.djangoproject.com/en/3.2/ref/contrib/admin/actions/
-
感谢您的建议,但我不知道如何在那里使用操作...意思是,当我从主管理页面单击“时间表”时,我会进入时间表列表(在那里,我可以使用动作)。但在屏幕截图中,我点击了该列表中的特定时间表,现在我看到了一个歌曲列表......
标签: python django administration manytomanyfield