Я пытаюсь переключить логическое поле, я знаю, что в обычной ситуации это просто.
Но мне нужно переключить логическое поле с помощью Foreignkey.
У меня две модели.
Модель 1: Цель и модель 2: Присоединены (от внешнего ключа к цели), я пытаюсь создать это, потому что канал активности (get stream.io) показывает только одно действие - когда пользователь добавляет цель.Но мне нужна также активность, когда пользователь присоединяется к цели.Вот почему я создаю объединенную модель для второго действия.
Модель 2 имеет только 4 поля: присоединенный (логический), пользователь (чужой для пользователя), созданный_кат и цель (внешний ключ к модели цели)
Как создать вид и путь для работы.Я пытаюсь это:
@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('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/ Идентификатор хорош, нокогда я нажимаю на ссылку: Нет Joined соответствует данному запросу.
Мой вопрос, как подключить эту модель и создать работу booleanfield.