Django Формы, созданные из модели с переполненным выводом набора запросов - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь создать ModelForm для моего класса модели "Актив" в Django 3

from django.db import models
from django.contrib.auth.models import User
from django.forms import ModelForm

class Manufacturer(models.Model):
    name = models.CharField(max_length=100)

class Asset(models.Model):
    serial = models.CharField(max_length=200)
    manufacturer = models.ManyToManyField(Manufacturer)
    author = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
    name = models.CharField(max_length=200)

Мне удалось создать форму с помощью следующего кода

from django import forms
from .models import Manufacturer

class AssetForm(forms.Form):
    serial = forms.CharField(max_length=150)
    manufacturer = forms.ModelChoiceField(queryset=Manufacturer.objects.all().values('name'))
    name = forms.CharField(max_length=200)
    description = forms.TextInput()
    status = forms.CharField(max_length=200)
    category = forms.CharField(max_length=200)

В результате выполнения querySet выпадающий список заполняется либо "{'name': 'Apple'}", либо "(" Apple ",)" в зависимости от использования значений или values_list соответственно. Как я могу просто отобразить само имя?

1 Ответ

0 голосов
/ 11 апреля 2020

Добавление следующего метода в модель устраняет проблему:

    def __str__(self):
    return self.name

Это вернет имя и только имя в набор запросов.

...