首页 > 解决方案 > 将数据写入 Django SQL Lite DB 时遇到问题

问题描述

嘿伙计们,我正在尝试建立一个基本的拍卖网站来学习 Python,但我在使用 Django (SQL Lite) 将数据写入数据库时​​遇到了问题。我使用了“python manage.py inspectdb”,发现数据库已经更新并且构建得很好,我希望使用的所有 5 个字段。

我正在构建一个监视列表功能,当用户单击“添加到监视列表”时,它应该将其添加到该用户的监视列表中-但是它没有添加任何数据-即使我像现在一样对数据进行硬编码。

我包含了我编写的新 Post 选项的代码,尽管它与 Watchlist 功能非常相似,但它工作得很好。我只是不知道为什么它不起作用。

这是我的代码:

视图.py:

def watchlist(request, username):
if request.method == "POST":
    new = Watchlist.objects.create(username = username, title = "Monkey", description = "Eats bananas", price = 300, category = "Animals")
    new.save()
    return render(request, "auctions/watchlist.html")
else:
    query = Watchlist.objects.all()
    return render(request, "auctions/watchlist.html", { "queries": query })

监视列表.html:

   % block body %}
    <h2>Watch List</h2>
<ul>

    {% for query in queries %}
            <li><a href="/watchlist/{{query.user}}">{{ query.title }} - {{ query.description }} - ${{ query.price }} - {{ query.category }}</a></li>
    {% endfor %}  
    {% endblock %}

标签: pythondjangodatabase

解决方案


您应该从文件中删除username参数views.py

在您的 html 文件中,在表单标签中添加您的 for 循环

<form method="POST">
    {% csrf_token%}
    # your for loop
</form>

推荐阅读