【发布时间】:2020-11-08 02:01:47
【问题描述】:
我想像在 Instagram 中一样构建这个书签系统,但在 view.py 中编写逻辑并显示它时遇到问题。因此,如果用户通过身份验证,我想要将基于“act-id”的“Act”添加到 Wishlist 模型中,如果我们使用 Ajax 进行通话后(单击书签图标时)或打开到会更好新的选择真的。这是我当前的代码...请帮助我!如果您需要任何额外的代码,请告诉我。
models.py
class Act(models.Model):
label1 = models.CharField(max_length=50, blank=False)
label2 = models.ImageField(blank=False, null=True)
label3 = models.IntegerField(('year'), choices=YEAR_CHOICES, default=datetime.datetime.now().year)
label4 = models.CharField(max_length=80)
def __str__(self):
return self.Name
class Wishlist(models.Model):
user_id = models.ForeignKey(User, on_delete=models.CASCADE,null=True)
act_id = models.ForeignKey(Act, on_delete=models.DO_NOTHING)
views.py
@csrf_exempt
def wishlist(request):
act_id = request.POST.get('act_id')
if not act_id:
raise ValueError("Required act_id to set wishlist")
user_id = request.user.pk
try:
act_id = Act.objects.get(pk=act_id)
wishlist_obj = {
'user_id': user_id,
'act_id': act_id
}
Wishlist(**wishlist_obj).save()
except ObjectDoesNotExist:
return HttpResponse('Some error occured, unable to add to wishlist')
return HttpResponse('Added to wishlist')
urls.py
urlpatterns = [
path('signup/', views.signup, name='signup'),
path('login/', views.login_req, name='login'),
path("logout/", views.logout_req, name="logout"),
path('home/', views.home, name='home'),
path('wishlist/', views.wishlist, name='wishlist'),
]
更多上下文这里是 home.html 的概念图片
[![在此处输入图片描述][3]][3]
【问题讨论】:
-
您面临的问题是什么?
标签: javascript python django ajax