I apologize to all reading this for answering here a little outside the norms of StackOverflow. This is more like a long comment than an answer, related to the fact that the poster has asked many similar questions about using the lmfit library over the past few months.
@Angela Mary You're probably getting a straight line because your initial values are not close enough to be refined.
When using lmfit, you absolutely must provide realistic initial values for all parameters to be optimized. There are no circumstances under which this can be neglected. If you are remotely unsure if your initial values are reasonable, plot the data and the model with the initial parameter values before trying a fit. When doing a fit, you are asserting that you know the initial values are reasonable values for approximating your data.
A corollary: it is not a mistake of the algorithms or library that it fails to find a good solution when you give it unreasonable initial values. This should be expected.
After a fit, always print out and read the fit report. This contains the principle result. A plot of the resulting fit can be useful -- a picture is worth a thousand words, as they say. But the fit results contain the table of the fit results, and a table of numbers is worth a thousand pictures. Let me repeat: ALWAYS PRINT OUT AND ACTUALLY READ THE FIT REPORT. Do not post questions about the results of lmfit where this report is not included.
The emphasis on StackOverflow is on coding. Questions should emphasize how to use the library, not the results it gives. This means that you are not likely to get very meaningful answers about why a model does not match particular data. Pose questions about how to do things.
Since the forum is about coding, ALWAYS include a minimal, complete example that shows the problem. If the phrase "minimal, complete example" is foreign to you, consider that your first homework assignment. The code posted here needs to be complete and runnable by someone else. Output reports need to be included. If you get an exception running code, post the full traceback. Do not edit the results: post them verbatim. These are not suggestions or "if you feel it is appropriate". These are requirements.
If you are fitting data (or doing any other calculation with data), then include that data, either in the code itself or as a readily available data file. Since your example has already been made into a minimal, complete example, the data will not need to be very big.