Форма на основе модели Django отображает ForeignKey в виде флажков - PullRequest
0 голосов
/ 14 июня 2019

Я хочу отобразить названия моделей дорожек (то есть поле ForeignKey () в модели списка воспроизведения) в виде списка флажков в шаблоне.Я знаю, что такое «CheckboxSelectMultiple», но я не знаю, как реализовать его в моей ситуации.

Вот моя модель «Плейлист»:

class Playlist(models.Model):
    title = models.CharField(max_length=40, null=True)
    description = models.CharField(max_length=500, null=True)
    author = models.ForeignKey(User, default=None, on_delete=models.CASCADE)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    miniature = models.ImageField(upload_to='images/playlist', default="defaults/default.png", validators=[validate_miniature_file_extension])
    tracks = models.ManyToManyField(Track)
    favourite = models.BooleanField(default=False)

    def __str__(self):
        return self.title

Вот моя модель «Трек»:

class Track(models.Model):
    title = models.CharField(max_length=40, null=True)
    description = models.CharField(max_length=500, null=True)
    author = models.ForeignKey(User, default=None, on_delete=models.CASCADE)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    miniature = models.ImageField(upload_to='images/track', default="defaults/default.png", validators=[validate_miniature_file_extension])
    audio_or_video = models.FileField(upload_to='audio_and_video/', default="file_not_found", validators=[validate_track_file_extension])
    favourite = models.BooleanField(default=False)

    def __str__(self):
        return self.title

Вот форма:

class AddPlaylist(forms.ModelForm):
    class Meta:
        model = models.Playlist
        fields = ['title', 'description', 'tracks', 'miniature', 'favourite']
        widgets = {
            'description': Textarea(attrs={'cols': 30, 'rows': 10}),
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...