Я создал форму на основе этой модели:
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)
Форма:
class AddPlaylist(forms.ModelForm):
class Meta:
model = models.Playlist
fields = ['title', 'description', 'tracks', 'miniature']
widgets = {
'description': Textarea(attrs={'cols': 30, 'rows': 10}),
}
Когда я ее рендерил, поведение «треков» меня удивило.Это выглядит так:
![enter image description here](https://i.stack.imgur.com/v5pic.png)
Первое: Имена - я хочу назвать эти треки с помощью (трек - модель и имеет поле "название") трек.заглавие.Как мне это сделать?Я ничего не нашел, когда искал виджеты во ManyToManyField.
Второе: выбор - например, когда я нажимаю на объект Track (1), когда выбран объект Track (4), obj (4)становится невыбранным, и obj (1) становится выбранным.Использование shift позволяет выбирать поля между объектами (например, между obj (1) и obj (3)), но пользователь не может выбрать obj (1) и obj (3), например.