В Django FormView я не могу увидеть форму
У меня есть некоторые проблемы, когда я не могу увидеть ни форму, ни параметр. вот мой код Здесь я передаю ID из предыдущего выбора как параметр
URL файл
path('make_payment/<int:jugador_id>', views.Payment_ViewMix.as_view(), name = "make_payment"),
view fiel: здесь я пытаюсь поймать параметр, а также получить текущее время и получить форму, когда я удаляю функцию get_context_data, форма отображается правильно, когда я добавляю ее снова, ничего не отображается, и ID никогда не отображается в шаблоне HTTP
class Payment_ViewMix(FormView):
form_class = PagoJugadorForm
template_name = "includes/make_payment.html"
context_object_name = 'payment'
def get_context_data(self, **kwargs):
idjug = self.kwargs
idjugador = int(idjug['jugador_id'])
print(idjugador)
context = {
'idjugador':idjugador,
}
return context
def form_valid(self, form):
context = self.get_context_data(context)
print(context)
fecha_pago = datetime.datetime.now()
print(fecha_pago)
jugador_id = context['idjugador']
fecha_pago = fecha_pago
#jugador_id.instance = self.object
monto = form.cleaned_data['monto']
notas = form.cleaned_data['notas']
id_categoriapago = form.cleaned_data['id_categoriapago']
id_group_categoria =form.cleaned_data['id_group_categoria']
JugadorPagos.objects.create(
idjugador = jugador_id,
fecha_pago = fecha_pago,
monto = monto,
notas = notas,
id_categoriapago = id_categoriapago,
id_group_categoria = id_group_categoria,
)
return super(Payment_ViewMix, self).form_valid(form)
файл формы : здесь в форме я не показываю ID, потому что это тот, который я хочу получить из заданного параметра, а текущая дата - это та, которую я хочу присвоить "fecha_pago"
class PagoJugadorForm(forms.ModelForm):
class Meta:
model = JugadorPagos
fields = (#'idjugador',
'monto',
#'fecha_pago',
'id_categoriapago',
'id_group_categoria',
'notas'
)
widgets = {
'notas': forms.TextInput(
attrs = {
'placeholder': 'ingrese texto'})
}
HTML поле:
Здесь я просто хочу напечатать ID и форму
{% block content %}
<h3 class = "text-center mt-5"> Jugador ID: {{payment.idjugador}}</h3>
<form method="post">
{% csrf_token %}
<table class="table table-striped" header = "Datos del jugador">
<tbody>
<tr>
<th scope="row">Monto</th>
<td>{{form.monto}}</td>
</tr>
<tr>
<th scope="row">Notas</th>
<td>{{form.notas}}</td>
</tr>
<tr>
<th scope="row">id_categoriapago</th>
<td>{{form.id_categoriapago}}</td>
</tr>
<tr>
<th scope="row">id_group_categoria</th>
<td>{{form.id_group_categoria}}</td>
</tr>
</tbody>
</table>
<button type="submit" >Realizar Pago </button>
</form>
когда я удаляю def get_context_data форма отображается правильно Надеюсь, вы сможете мне помочь, потому что у меня нет никакой ошибки.
Наилучшие пожелания
Вам нужно переопределить get_context_data(...)
таким образом, чтобы он вызывал свой суперкласс (оригинальный метод get_context_data
)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
idjug = self.kwargs
idjugador = int(idjug['jugador_id'])
context['idjugador'] = idjugador
return context