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

питон SA Sociedade Tecnológica.

Социальные медиа Гиганты, такие как Instagram, Twitter, Facebook и Github имеют одно общее, то есть … помечена Python, Django, WebDev, программированием.

Гиганты в социальных сетях, такие как Instagram, Twitter, Facebook и Github, имеют одно общее, то это следует/отписаться. который позволяет пользователю следовать друг за другом.

Здесь, в этом посте мы пытались имитировать эту функцию. * Требуется базовые знания Джанго

  1. Требуются модули:
    • Django:
pip install Django
  1. Основная настройка:

    • Команда, чтобы сделать проект – здесь имя проекта называется как «блог»
  • В папке блога создайте приложение – здесь имя приложения названо как «автор»

  1. код
    • После создания приложения автора откройте файл Models.py в авторе
from django.db import models
from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    following = models.ManyToManyField(
        "self", blank=True, related_name="followers", symmetrical=False
    )
    bio = models.TextField(max_length=200, blank=True, default="Bio")
    website = models.URLField(max_length=200, blank=True)


    def __str__(self):
          return f"{self.username} Profile"

Здесь Madertomany Field поможет нам создать следующее поле, поскольку пользователь может следовать многим другим пользователям, и многие пользователи могут следовать за ним. Документы на Manytomanyfield.

  • После создания моделей и запущенных миграций нам нужно работать на просмотр .py
from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.urls import reverse
from author.models import User


def profile(request, username):
    userProfile = User.objects.get(username=username)

    data = {
        "author": userProfile,
    }
    return render(request, "author/profile.html", data)


def followToggle(request, author):
    authorObj = User.objects.get(username=author)
    currentUserObj = User.objects.get(username=request.user.username)
    following = authorObj.following.all()

    if author != currentUserObj.username:
        if currentUserObj in following:
            authorObj.following.remove(currentUserObj.id)
        else:
            authorObj.following.add(currentUserObj.id)

    return HttpResponseRedirect(reverse(profile, args=[authorObj.username]))

Мы должны функционировать здесь:

  1. Профиль () – эта функция обрабатывает профиль пользователя, принимая имя пользователя в качестве аргумента

  2. FoldeToggle () – эта функция обрабатывается следующая система/отключенная система для пользователя. Эта функция принимает имя пользователя в качестве аргумента, который наш текущий пользователь хочет следовать/отписаться.

  • Теперь Время работать на URLS.PY для подключения видов
from django.urls import path
from author import views

urlpatterns = [
    path("profile//", views.profile, name="profile"),
    path("followToggle//",views.followToggle, name="followToggle")
]
  • Создайте папку шаблонов в папке шаблонов, создайте автор/профиль. HTML шаблон.

* Я использую Bootstrap для моего проекта. Итак, пожалуйста, игнорируйте классы

{% extends "base.html" %}
{% load static %}
{% block header %}
{% endblock header %}

{% block content %}

{{ author.username }}

{{ author.username }}

following :

{{ author.following.count }}

     followers :

{{ author.followers.count }}

{{ author.bio }}
{% if user.is_authenticated %} {% if user in author.following.all %} Unfollow {% else %} Follow {% endif %} {% else %}

please, login to follow

{% endif %}
    {% if author.website %}
  • Website
    {{ author.website }}
  • {% endif %}
{% endblock content %}

Это страница профиля для автора, которую мы хотим следовать/отписаться, мы получаем эту страницу, передавая «имя пользователя» на Просмотр профиля здесь,

  • {{aper.following.count}} : Этот тег представляет количество пользователей после текущего пользователя
  • {{aper.followers.count}} : Этот тег представляет количество пользователей, сопровождаемых текущим пользователем, этот тип тега отношений называется обратным или обратным отношениям документы

Чтобы следовать/отписаться на этом пользователю, мы используем {% URL 'NOXHTOGGLE'.username%} Это URL-тег. Следуйте и отключенным текстом на кнопке представлен, глядя, если пользователь выходит в автор следующий список

Вот и все. Надеюсь, тебе нравится.

Оригинал: “https://dev.to/itsvinayak/creating-a-follow-and-unfollow-system-in-django-python-39gg”