Столкнулась со следующей проблемой: в админке джанго не получается отобразить скрытые поля формы.
Суть: на сайте есть форма, в которой содержится информации о сданном задании. В скрытое поле формы записывается дата и время сдачи задания. В админке администратор сайта должен иметь возможность просмотреть сданное задание и время его отправки.
Есть модель задания:
class PassTheTask(models.Model): name = models.ForeignKey(Task) text = models.TextField(u'Описание') time = models.DateTimeField(u'Дата и время сдачи задания', auto_now_add=True, null=True, blank=True)
class PassForm(forms.ModelForm): class Meta: model = PassTheTask widgets = {'time': forms.HiddenInput()} fields = ['name', 'text', 'link']
def passthetask(request): if request.method == 'POST': form = PassForm(request.POST) if form.is_valid(): name = form.cleaned_data['name'] text = form.cleaned_data['text'] link = form.cleaned_data['link'] messages.add_message(request, messages.INFO, 'Задание отправлено.') form.save() return render(request, 'game/task.html', {'form': form}) else: form = PassForm() return render(request, 'game/task.html', {'form': form})
<form method="post" enctype="multipart/form-data" action=""> {% csrf_token %} {{form.as_p}} <input type="hidden" name="time"> <input type="submit" value="Сдать задание" /> </form>
Админка:
class PassTheTaskForm(forms.ModelForm): STATUS_CHOICES = ( ('WAIT', u'Ожидает проверки'), ('PASS', u'Сдано успешно'), ('VIEWED', u'Сдано не успешно') ) status = forms.ChoiceField(choices=STATUS_CHOICES) class PassTheTaskAdmin(ModelAdmin): fields = ('name', 'text'', 'status', 'time') list_display = ('name', 'status',) admin.site.register(PassTheTask, PassTheTaskAdmin)
Когда time присутствует в filelds возникает ошибка: Unknown field(s) (time) specified for PassTheTask. Check fields/fieldsets/exclude attributes of class PassTheTaskAdmin.
Причем time может спокойно присутствовать в list_display и выводиться.
Я так понимаю, есть какая фишка с редактированием скрытых полей в админке. Или может есть другой способ передавать время заполнения формы?