我想在我的应用中添加最喜欢的功能,因为很多模特都可以受欢迎,我会在 Django 中使用ContentType framework。
我的问题是,我不知道如何从表单中获取content_type
模型?
查看:
@login_required
def add_or_remove(request):
user = request.user
try:
app_model = request.POST["target_model"]
obj_id = int(request.POST["target_object_id"])
except (KeyError, ValueError):
return HttpResponseBadRequest()
fav = Favorite.objects.get_favorite(user, obj_id, model=app_model)
if fav is None:
Favorite.objects.create(user, obj_id, app_model)
return HttpResponse('Done!')
表单(form.html)
<form action="" action="POST">
<input type="hidden" value="{{ object.id}}" name="target_object_id">
<input type="hidden" value="?" name="target_model">
</form>
所以,我知道如何获得object_id
和user
,但如何在表单中显示app_model
?
我已经阅读了文档,但我并没有真正理解它。
谢谢!
答案 0 :(得分:0)
您可以显示ContentType
ID。
获取表单中显示的ID:ContentType.objects.get_for_model(TargetModelClass).pk
。
从ID:ContentType.objects.get_for_id(int(request.POST["target_model"]))