我尝试切换布尔字段,我知道在正常情况下这很简单。
但是我需要用外键切换布尔字段。
我有两个模型。
模型1:目标和模型2:已加入(目标的外键),我尝试创建它是因为活动供稿(获取stream.io)仅显示一个活动-当用户添加目标时。但是当用户加入目标时,我也需要活动。这就是为什么我为第二个活动创建联接模型的原因。
模型2仅具有4个字段:joind(布尔值),user(用户对外部),created_at和Goal(目标模型为外部键)
如何创建视图和工作路径。 我试试这个:
@login_required
def toggle_done(request, joined_id: int) -> HttpResponse:
joined = get_object_or_404(Joined, pk=joined_id)
toggle_task_completed(joined.id)
messages.success(request, "Dołączyłeś do celu '{}'".format(joined.goal.title))
return redirect(
reverse('goallist')
)
def toggle_task_completed(joined_id: int) -> bool:
try:
joined = Joined.goal.get(id=joined_id)
joined.joined = not joined.joined
joined.save()
return True
except Joined.DoesNotExist:
# FIXME proper log message
print("Nie znaleziono celu")
return False
#Path:
path('toggle_done/<int:joined_id>/', views.toggle_done, name='joined'),
和模板:
{% if goal.joined %}
<a href="{% url 'joined' goal.id %}" class="btn btn-success-gradiant">Już dołączyłeś</a>
{% else %}
<a href="{% url 'joined' goal.id %}" class="btn btn-danger-gradiant">Dołącz do celu</a>
{% endif %}
链接:http://django.local:8000/goals/toggle_done/1/ ID很好,但是当我单击链接时:No Joined匹配给定查询。
我的问题是,如何连接此模型并创建工作布尔值字段。