Render_to_string und response.content.decode () stimmen nicht überein

Ich schreibe mein erstesDjango App, indem Sie diesem Buch folgen:

http: //chimera.labs.oreilly.com/books/1234000000754/ch05.html#_passing_python_variables_to_be_rendered_in_the_templat

In dem Buch gibt es einen Test, der bestätigt, dass der HTML-Code so zurückgegeben wird, wie er soll. Hier ist der Test:

def test_home_page_returns_correct_html(self):
        request = HttpRequest()
        response = home_page(request)
        expected_html = render_to_string('home.html')
        print(expected_html)
        print(response.content.decode())
        self.assertEqual(response.content.decode(), expected_html)

Mein Test schlägt auf dem @ feassertEqual test weil ich ein @ hinzugefügt hacsrf token in meinem HTML mit demDjango Template Language. So sieht meine HTML-Seite aus:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>To-Do lists</title>
</head>
<body>
    <h1>Your To-Do list</h1>
    <form method="POST">
            <input name="item_text" id="id_new_item" placeholder="Enter a to-do item"/>
            {% csrf_token %}
    </form>

    <table id="id_list_table">
        <tr><td>{{ new_item_list }}</td></tr>
    </table>
</body>
</html>

Meine Zusicherung schlägt aufgrund des @ ferender_to_string -Methode ohne Token. Hier ist was meine beidenprint Aussagen in meinem Testausdruck enthalten:

F<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>To-Do lists</title>
</head>
<body>
    <h1>Your To-Do list</h1>
    <form method="POST">
            <input name="item_text" id="id_new_item" placeholder="Enter a to-do item"/>

    </form>

    <table id="id_list_table">
        <tr><td></td></tr>
    </table>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>To-Do lists</title>
</head>
<body>
    <h1>Your To-Do list</h1>
    <form method="POST">
            <input name="item_text" id="id_new_item" placeholder="Enter a to-do item"/>
            <input type='hidden' name='csrfmiddlewaretoken' value='VAiGvXZLHCjxWEWdjhgQRBwBSnMVoIWR' />
    </form>

    <table id="id_list_table">
        <tr><td></td></tr>
    </table>
</body>
</html>
F.

Er hat dieses Problem nicht im Buch (er benutzt1.8), also habe ich mich gefragt, ob sich das Verhalten der Methode geändert hat oder wie ich diesen Test zum Bestehen schreiben würde.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage