Рубрики
Без рубрики

Закрепление криката?!

Работая над этим 7 командным веб-приложением Appcent, которое помогает сделать повседневные задачи в базовом лагере быстрее и проще …. Помечено с Джанго, Python, FirstPost.

Работа над этим 7 командным веб-приложением Восхождение , что помогает сделать повседневные задачи в Базовый лагерь быстрее и проще.

Моя команда : Shoutouts, мы отвечаем за тем, как студенты могут быть кричать другими студентами. У каждого студента есть собственные страницы Shoutouts со всеми их криками. Shotout можно понравиться и закреплена в каждой странице студентов Shocouts.

Я собираюсь пойти за опоздание криката.

Models.py

  • Это модель для закрепленного криката. Это OneToonefield убедится, что может быть только один Poinnedshoutout за Пользователь а также один Poinnedshoutout за Shoutout Отказ
  class PinnedShoutout(models.Model):
    user = models.OneToOneField(User, on_delete=models.PROTECT)
    shoutout = models.OneToOneField(Shoutout, on_delete=models.PROTECT)

Urls.py

  • Первым аргументом этого URL является путь, второй аргумент будет использоваться названием точки зрения, с которым оно соответствует, а третий аргумент – это все равно что дать, чтобы показать другое имя, которое будет называться.
   app_name = "shoutouts"

   urlpatterns = [
   path("pinned/", PinShoutout.as_view(), name="pinned")
]

Views.py

  • Если этот взгляд вызывается (закреплен нанятие), он получает эти детали, перенаправляющие на другой вид, в противном случае его создается крик. Тогда, если навязку уже закреплена уже, это отключает их, удаляя предыдущий крик и закрепление нового.
   class PinShoutout(View):
    def post(self, request, shoutout_id):
        user = request.user
        shoutout = get_object_or_404(
            Shoutout, pk=shoutout_id).select_related('shoutout')
        if not hasattr(request.user, "pinnedshoutout"):
            new_pinned = PinnedShoutout.objects.create(
                user=user, shoutout=shoutout)
        else:
            request.user.pinnedshoutout.shoutout = shoutout
            request.user.pinnedshoutout.save()
        return redirect("shoutouts:individual_shoutouts", recipient_id=user.id)

Оригинал: “https://dev.to/christianguzman/pinning-a-shoutout-8ll”