Привет, всем!
Столкнулся со следующей проблемой: в админке джанго не получается отобразить скрытые поля формы.
Суть: на сайте есть форма, в которой содержится информации о сданном задании. В скрытое поле формы записывается дата и время сдачи задания. В админке администратор сайта должен иметь возможность просмотреть сданное задание и время его отправки.
Есть модель задания:
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})
Сама форма в html:
<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 и выводиться.
Причем, даже если не делать поле скрытым, ошибка таже.