Внешний ключ показан как выпадающий. Любой способ показать это как текстовое значение? (django) - PullRequest
0 голосов
/ 15 марта 2020

В моем приложении на странице 1 я создаю объект Project, а затем на странице 2 я создаю пакетный объект. «Пакетный» объект имеет отношение «многие к одному» с «Проектом». Поэтому при вызове пакетной формы необходимо отображать объект Project.

Я могу показать объект Project в пакетной форме, но он отображается в виде раскрывающегося списка. Я хотел бы, чтобы это отображалось как значение поля, но оно не работает. Не могли бы вы помочь. Спасибо.

models.py

Class Project
name = models.CharField()

Class Batch
name = models.CharField()
project = models.ForeignKey('Project', on_delete=models.CASCADE)

template.py

<a href="{% url 'create_batch_url' pk=project.id %}" role="button" >Link to Batch</a>

передача внешнего ключа из представления urls.py

path('batch/new/<int:pk>', batch_views.review_batch, name='create_batch_url'),

.py

simple view which calls the model form

forms.py

class BatchForm(ModelForm):

class Meta:
        model = Batch
        fields = ('name', 'project',)

def __init__(self, *args, **kwargs):
        self.request = kwargs.pop("request")
        project_id = kwargs.pop("project_id")

        #Only show the project where the request came from
        self.fields['project'].queryset = Project.objects.filter(id=project_id)

1 Ответ

0 голосов
/ 16 марта 2020

Вам необходимо добавить переменную widgets в мета-форму. Ссылка на документацию

from django.forms import TextInput

class BatchForm(ModelForm):
    class Meta:
        model = Batch
        fields = ('name', 'project',)
        widgets = {'project': TextInput}

def __init__(self, *args, **kwargs):
        self.request = kwargs.pop("request")
        project_id = kwargs.pop("project_id")

        #Only show the project where the request came from
        self.fields['project'].queryset = Project.objects.filter(id=project_id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...