Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

282
Visualizações
Cómo prellenar el formulario Django dinámicamente

Estoy tratando de mostrar un formulario en django y prellenarlo dinámicamente. Quiero que el usuario de mi sitio de recopilación de noticias de muestra modifique una entrada.

Tengo mi clase de formulario de entrada manual

 #forms.py class ManualInputForm(forms.Form): source = forms.CharField(label="Source:", widget = forms.TextInput(attrs={'size': 97})) topic = forms.CharField(label="Topic:", widget = forms.TextInput(attrs={'size': 97})) news = forms.CharField(widget = forms.Textarea(attrs={"rows":5, "cols":100})) link = forms.CharField(label="Link (optional):", required = False, widget = forms.TextInput(attrs={'size': 97}))

En el HTML voy manualmente porque me gustaría completar previamente todos los campos con datos provenientes de la función relacionada en views.py .

 #html file <form method="post" class="form-group"> {% csrf_token %} <div class="input-group mb-3"> <div class="container"> {% for field in form %} <div class="fieldWrapper"> {{ field.errors }} {{ field.label_tag }} <br> {{ field }} </div> {% endfor %} </div> <div class="input-group"> <p> </p> <button type="submit" class="btn btn-success" name="Submit">Save</button> </div> </div> </form>

¿Cómo lo hago? Me está volviendo loco. Me gustaría seguir usando los formularios de django debido a su administrador de errores integrado (no todos los campos son obligatorios, pero algunos sí y me gustaría que django los siga administrando).

¡Gracias por tus sugerencias!

EDITAR: según lo solicitado, publicaré la función relacionada con views.py:

 #views.py def editnews(response, id): form = ManualInputForm(response.POST or None) #tableToView is a dataframe retrieved by querying an external DB #data cannot be stored in django's buit in because of reasons ;-) #checking the dataframe is correct and it is: #IT IS MADE OF A SINGLE LINE print(tableToView) #THIS IS PROBABLY NOT THE WAY TO DO IT form.source = tableToView.loc[0, 'Source'] form.topic = tableToView.loc[0, 'Topic'] form.news = tableToView.loc[0, 'News'] form.link = tableToView.loc[0, 'Link'] return render(response, 'manual/editnews.html', {"form":form})

En la imagen, el texto debe estar prellenado.

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Prueba algo así:

 def editnews(response, id): data = {k.lower(): v for k, v in tableToView.loc[0].to_dict().items()} form = ManualInputForm(response.POST or None, initial=data) return render(response, 'manual/editnews.html', {'form': form})
about 4 years ago · Juan Pablo Isaza Relatório

0

cuando está declarando o representando el formulario a la vista y enviándolo a la plantilla. use el argumento inicial y pase el diccionario con la clave como nombre de campo y el valor como el texto que desea completar previamente.

como este context['formulario'] = NameofForm(initial={'Source':'mysite', 'Topic':'mytopic'}) return context

Actualizar

 > def test_view(request, pk): > template_name = 'form.html' > form = MyForm(initial={"test":"initialize with this value"}) > if request.method == 'POST': > form = MyForm(request.POST) > if form.is_valid(): > form.save() > return HttpResponseRedirect(reverse('list-view')) > > return render(request, template_name, {'form': form})
about 4 years ago · Juan Pablo Isaza Relatório

0

Prueba esto:

 #views.py def editnews(response, id): data = {} data["source"] = tableToView.loc[0, 'Source'] data["topic"] = tableToView.loc[0, 'Topic'] data["news"] = tableToView.loc[0, 'News'] data["link"] = tableToView.loc[0, 'Link'] form = ManualInputForm(response.POST or None, initial=data) return render(response, 'manual/editnews.html', {"form":form})
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda