【发布时间】:2021-01-26 13:48:49
【问题描述】:
这是我在这里的第一个问题,但我会尽力为您提供所有详细信息。 我需要为某个页面创建一个监视列表,用户应该能够将项目“添加”到监视列表。
错误
异常类型:TypeError
异常值:prepare_database_save() 缺少 1 个必需的位置参数:'field'
我不知道为什么,你能告诉我“字段”是什么意思吗,我的代码中什至没有字段的名称。而且我无法将对象保存到我的数据库中。
还有
C:\auctions\views.py,第 46 行,在 watchlist_add
watchlist.save()
模型
class WatchList(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="user")
auctions = models.ManyToManyField(Auction, related_name="auctions", blank=True)
def __str__(self):
return f"{self.user}'s watchlist'"
我的网址
urlpatterns = [
path("", views.index, name="index"),
path("watchList/<int:auction_id>", views.watchlist_add, name="watchlist_add"),
]
和 Views.py
def getLastPk(obj):
if(obj.objects.first() is None):
return 1
else:
get_pk = obj.objects.order_by('-pk')[0]
last_pk = get_pk.pk +1
return last_pk
def watchlist_add(request, auction_id):
auction_to_save = Auction.objects.get(pk=auction_id)
watchlist = WatchList(getLastPk(WatchList),User)
watchlist.save()
watchlist.auctions.add(auction_to_save)
watchlist.save()
return render(request, "auctions/watchlist.html",{
"watch_list" : watchlist.auctions.all(),
})
在 html 中,我通过以下方式调用此函数:
{% if user.is_authenticated %}
<a href="{% url 'watchlist_add' listing.id %}">Add to Watch List</a>
{% endif %}
listing.id 是当前拍卖的 id
感谢您的帮助:)
完整追溯
Traceback(最近一次调用最后一次):
文件 “C:\env\lib\site-packages\django\core\handlers\exception.py”,第 47 行, 在内部 response = get_response(request)
文件“C:\env\lib\site-packages\django\core\handlers\base.py”,第 179 行,在 _get_response response = Wrapped_callback(request, *callback_args, **callback_kwargs)
文件“C:\env\Scripts\commerce\auctions\views.py”,第 63 行,在 wtadd watchlist.save()
文件“C:\env\lib\site-packages\django\db\models\base.py”,第 753 行,保存中 self.save_base(using=using, force_insert=force_insert,
文件“C:\env\lib\site-packages\django\db\models\base.py”,第 790 行,在 保存基地 更新 = self._save_table(
文件 "C:\env\lib\site-packages\django\db\models\base.py",第 872 行,在 _save_table 更新 = self._do_update(base_qs, using, pk_val, values, update_fields,
文件 “C:\env\lib\site-packages\django\db\models\base.py”,第 926 行,在 _do_update return filters._update(values) > 0
文件“C:\env\lib\site-packages\django\db\models\query.py”,第 803 行,在 _更新 返回 query.get_compiler(self.db).execute_sql(CURSOR)
文件“C:\env\lib\site-packages\django\db\models\sql\compiler.py”,行 1522,在execute_sql中 cursor = super().execute_sql(result_type)
文件“C:\env\lib\site-packages\django\db\models\sql\compiler.py”,行 第1143章 sql, params = self.as_sql()
文件“C:\env\lib\site-packages\django\db\models\sql\compiler.py”,行 第1478章 val.prepare_database_save(字段),
异常类型:/watchList/add 处的 TypeError 异常值: prepare_database_save() 缺少 1 个必需的位置参数: '字段'
【问题讨论】:
标签: python django django-models save