Как показать значения поля "многие-ко-многим" в форме?
Я написал код о музыке и использовал 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