Задать вопрос
@koshnv
Жить, искать, найти, и перепрятать...

Как скрыть «value» поля «select» значения которого берутся из поля «ForeignKey»?

Все добра!
Кратко:
В форме есть поле , задача выводить только последние два «value» из значений модели поля «ForeignKey».
Подробно:
Для обновления формы использую «UpdateView», одно из полей имеет тип «ForeignKey», выводит не изменяемый список статусов (‘редактирование’, ‘согласование’, ‘доработка’, ‘утверждено’), требуется скрыть статус (‘редактирование’, ‘доработка’) из доступного выбора.
Пробовал в сторону переопределения методов во wiews.py покопать или html шаблоне, но знаний не хватает.
model.py
class Echk(models.Model):
    dateCraet = models.DateTimeField(auto_now=True, verbose_name='Создано') #Дата создания карточки
    subdivision = models.ForeignKey('subdivision', on_delete=models.PROTECT, null=True, verbose_name='Цех')#Свзь с таблицей цехов 
    workDate = models.DateTimeField(verbose_name='Дата работы')
    applicationStatus =  models.ForeignKey('applicationStatus', default=1, on_delete=models.PROTECT, verbose_name='Стутус заявки') #Статус заявки
    note  = models.TextField(blank=True, verbose_name='Примечание') #примечание   

    def get_absolute_url(self):
        return reverse("add_application", kwargs={'pk': self.pk})

    def __str__(self):
        return str(self.pk)

    class Meta:
        verbose_name = 'Заявка'
        verbose_name_plural = 'Заявки'
        ordering = ['-id']
        
class ApplicationStatus(models.Model):
    applicationStatus = models.CharField(max_length=150, db_index=True, verbose_name='Статус заявки') #Статус заявки
    
    class Meta:
        verbose_name = 'Статус заявки'
        verbose_name_plural = 'Статусы заявок'
        ordering = ['id']

    def __str__(self):
        return self.applicationStatus


views.py
class Application_update(UpdateView):
    model = Echk
    form_class = AddAapplicationForm
    template_name = 'echk/update_application.html'
    success_url = reverse_lazy('echk')

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['idApplication'] = self.kwargs['pk']
        return context


form.py
class AddAapplicationForm(forms.ModelForm):
    
    workDate = forms.DateField(widget=SelectDateWidget(), initial=yesterday)
    
    class Meta:
        model = Echk
        
        fields = ['subdivision', 'workDate', 'applicationStatus', 'note']
        widgets = {}


update_application.html
{% extends 'base.html' %}

{% block container %}
<h1>Изменить заявку</h1>
<form action ="" method = "post" enctype="multipart/form-data">
    {% csrf_token %}

    {{ form.non_field.errors }}

    <div class="form-group"> 
        <label for="{{ form.applicationStatus.id_for_label}} " > статус заявки </label>
        {{form.applicationStatus}}
        <div class="invalid-feetback"> 
            {{ form.applicationStatus.errors}}
        </div>
    </div>
    <br>
    <button type= "sumbit" class = "btn btn-primary">Сохранить заявку </button> 
</form>
{% endblock %}
  • Вопрос задан
  • 47 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы