【发布时间】:2019-12-15 00:15:27
【问题描述】:
我正在制作一个 django 应用程序,其中主页显示不同公司的实习机会列表。usertype=Student 的用户可以查看这些实习机会。单击应用时,每个实习列表视图都有一个名为“应用”的按钮 我希望将我的 django 模型(StudentApplying)中名为 applied 的布尔字段设置为 true。这样创建此帖子的公司可以查看申请的学生列表,然后可以接受/拒绝他们。我不想使用 ajax、javascript 等,除非我无法用 django 本身来做到这一点。
models.py
from django.db import models
from InternsOnboardMain.models import internshipPost
from django.contrib.auth.models import User
class StudentApplying(models.Model):
companyName =
models.ForeignKey(internshipPost,on_delete=models.CASCADE)
studentName = models.ForeignKey(User,on_delete=models.CASCADE)
applied = models.BooleanField(default=False)
view.py(我已经尝试过了,但它不起作用)
from django.shortcuts import render, redirect,get_object_or_404
from django.contrib import messages
from django.contrib.auth.decorators import login_required
from .models import StudentApplying
from django.contrib.auth.models import User
from django.db.models import F
def applyStatus(request):
if request.GET.get('applybtn'):
profil = get_object_or_404(StudentApplying,
created_by=request.user)
profil.applied = True
profil.save(update_fields=["applied"])
return redirect('InternsOnboard-Home')
return HttpResponse('Not done')
我没有使用任何forms.py
html 文件
<form method="POST" action="{% url 'Student-Apply' %}">
{% csrf_token %}
<button class="btn btn-info" name="applybtn">Apply</button>
</form>
没有必要有标签
【问题讨论】:
-
嗨@Kiran,我目前没有太多时间进行全面检查,但在您的代码中,这行首先看起来是错误的:
if request.GET.get('applybtn'):- 因为您提交时请求是 POST一个表格,所以你应该使用:if request.POST.get('applybtn'): -
@Zollie 感谢您如此迅速地回复,但即使更改为 POST 也无法正常工作。无论哪种方式,它都会返回“未完成”。
标签: django python-3.x django-models django-templates django-views