Как показать значения поля "многие-ко-многим" в форме?

Я написал код о музыке и использовал ManyToManyField() для жанра, но когда я пытаюсь показать жанры, он просто показывает: Genre['a number']

Шаблон:

{% extends 'pages/base.html' %}

{% block content %}
    
    <form>
        {% if mdata.image %}
            <img src="mdata.image.url" height="500" width="500">
        {% endif %}
    
        {% for field in form %}
            <p>{{ field.label }} : {{ field.value}}</p>
            }
        {% endfor %}
    </form>
    
    <a href="{% url 'pages:edit_music' mdata.id %}">edit</a>

{% endblock %}

Возможно, у вас нет функции str на вашей модели Genre, добавьте функцию str и верните название жанра. Это будет что-то вроде

def str(self): return self.name

self.name здесь - поле в вашей модели жанра, используемое для указания имени, в примере ниже я установил пользовательского пользователя, чтобы он возвращал имя пользователя по умолчанию, таким образом, где бы я ни вызывал пользователя, он будет автоматически показывать название жанра

class CustomUser(AbstractUser):

id = models.UUIDField(primary_key=True, editable=False, default=uuid4)
email = models.EmailField(_("email address"), unique=True, null=True)
phone_number = PhoneNumberField(unique=True, null=True)
username = models.CharField(max_length=100, unique=True, null=True)
password = models.CharField(_("password"), max_length=128, null=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)

class Meta:
    verbose_name = "User"
    verbose_name_plural = "Users"

def __str__(self):
    return self.username
Вернуться на верх