Soy nuevo en Django, estoy tratando de recibir información del usuario usando el campo de texto generado por HTML y no usar los formularios de Django.

<form action="" method="post">
{ % csrf_token % }
<label for="name">Enter name: </label>
<input id="namefield" type="text" name="name_field" value="Default name">
<input type="submit" value="OK">
</form>

Quiero guardar el nombre en mi base de datos, sin crear un formulario django y tomar datos del formulario y guardarlo en la base de datos a través del archivo views.py.

0
Aurphillus 23 feb. 2020 a las 16:40

2 respuestas

La mejor respuesta

En su opinión:

If request.method == 'POST' :
          name = request.POST['field_name']
          #now you can save them into related model
          MyModel.objects.create(username=name,other fields goes here) 
0
Muhammad Faizan Fareed 24 feb. 2020 a las 03:16

Debe crear en el archivo views.py un método en el que las plantillas y la lógica del mismo, un ejemplo puede ser el siguiente

@csrf_exempt
def home(request):
    if request.method == 'POST':
        var1 = request.POST.get('var1')
        var2 = request.POST.get('var2')
        var3 = request.POST.get('var3')

        #Save to the database here

        return render_to_response(
            'home.html',
            {'message': 'Update Success', }
        )
    else:
        return render_to_response(
            'home.html',
            {}
        )
0
Daniel Muñoz 24 feb. 2020 a las 03:09