如何跟踪 Django 中的按钮单击?

2023-12-24

Views.py - 我希望能够转到用户页面,然后单击并通过与 Twitter 完全相同的按钮关注他们,我有点知道如何添加用户,正如您在我的视图中通过添加变量看到的那样,但我真的不知道如何将其实际实现到一个按钮中,让我可以跟随用户!我已经被困在这个问题上一整天了,这可能是非常明显的,所以非常感谢任何帮助!我认为这个问题不需要我的模板,但如果需要,请告诉我!

@login_required       
def home(request, username):
    context = {}
    if username == request.user.username:
        return HttpResponseRedirect('/home /user/{0}'.format(request.user.username))
    else:
        user = User.objects.get(username=username)
        user_profile = UserProfile.objects.filter(user=user)
        following = user.userprofile.follows.all()
        number = user.userprofile.follows.all().count()
        tweet = Tweet.objects.filter(userprofile=user_profile).order_by('date')
        yum = Tweet.objects.filter(userprofile=user_profile).count()
        add = user.userprofile.follows.add(request.user.userprofile)
        context['user'] = user
        context['profile'] = user_profile
        context['follow'] = following
        context['number'] = number
        context['tweet'] = tweet
        context['yum'] = yum
    return render (request, 'homer.html', context)

模型.py

from django.db import models
from django.contrib.auth.models import User
import os


def get_image_path(instance, filename):
    return os.path.join('photos', str(instance.user.id), filename)

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    bio = models.CharField(max_length=120, blank=True,  verbose_name='Biography')
    follows = models.ManyToManyField('self', related_name='followers', symmetrical=False, blank=True)
    theme = models.ImageField(upload_to=get_image_path, blank=True)
    profile_picture = models.ImageField(upload_to=get_image_path, blank=True) 


    def __str__(self):
        return self.bio

class Tweet(models.Model):
    userprofile = models.ForeignKey(UserProfile)
    tweets = models.TextField(max_length=120)
    date = models.DateTimeField()


    def __str__(self):
        return self.tweets

您可以通过 GET 或 POST 执行此操作。这是通过 GET 进行查看的方式,因为这样更简单。

from django.http import JsonResponse
def follow_user(request, user_profile_id):
    profile_to_follow = get_object_or_404(UserProfile, pk=user_profile_id)
    user_profile = request.user.userprofile
    data = {}
    if profile_to_follow.follows.filter(id=user_profile.id).exists():
        data['message'] = "You are already following this user."
    else:
        profile_to_follow.follows.add(user_profile)
        data['message'] = "You are now following {}".format(profile_to_follow)
    return JsonResponse(data, safe=False)

然后在 urls.py 中,您需要将以下内容添加到您的 urlpatterns 中。

url(r'^follow/(?<user_profile_id>[\d]+)/$', views.follow_user)

然后你需要使用一些 JavaScript,如下所示:

$('.follow-button').click(function() {
    $.get($(this).data('url'), function(response) {
        $('.message-section').text(response.message).show();
    });
});

这假设一些 html 如下所示:

<body>
    <div class="message-section" style="display:none;"></div>
    {% for user_profile in all_user_profiles %}
        <button data-url="{% url "example_app.views.follow_user" user_profile_id=user_profile.id %}"
                class="follow-button" type="button">Follow</button>
    {% endfor %}
</body>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何跟踪 Django 中的按钮单击? 的相关文章

  • 写入 Django 缓存非常慢

    我曾经将数据库查询缓存在全局变量中以加快我的应用程序的速度 由于这是强烈不建议的 并且它确实产生了问题 所以我想使用任何类型的 Django 缓存 我尝试了 LocMemCache 和 DatabaseCache 但两者都需要 关于15秒设
  • 如何从Python中的阿拉伯字符串中删除英文文本?

    我有一个带有英文文本和标点符号的阿拉伯字符串 我需要过滤阿拉伯文本 我尝试使用 sting 删除标点符号和英语单词 但是 我失去了阿拉伯语单词之间的空格 我哪里错了 import string exclude set string punc
  • 在python中合并两个json对象

    我正在 python 中合并两个 json 我正在做 import json json obj json dumps a 1 2 json obj1 json dumps a 3 4 json obj json obj1 print jso
  • 将 3d NumPy 数组重塑为 2d NumPy 数组时遇到问题

    我正在研究图像处理问题 我的数据以 3 维 NumPy 数组的形式呈现 其中 x y z 条目是图像 z 的 x y 像素 数值强度值 有 100000 张图像 每张图像为 25x25 因此 数据矩阵的大小为 25x25x10000 我试图
  • 在python中合并3个dict()

    如果多个字典之间有公共字符串 是否有逻辑合并多个字典的方法 即使这些公共字符串在一个 dict 的值与另一个 dict 的键之间匹配 我在 SO 上看到了很多类似的问题 但似乎没有一个问题能解决我将 较低级别文件 中的多个键与较高键 值中的
  • 检查时间戳列是否在另一个数据帧的日期范围内

    我有一个数据框 df A 有两列 amin 和 amax 这是一组时间范围 我的目标是查找 df B 中的列是否位于 df A amin 和 amax 列中范围的任何行之间 df A amin amax amin amax 0 2016 0
  • 如何将多项式拟合到带有误差线的数据

    我目前正在使用 numpy polyfit x y deg 将多项式拟合到实验数据 然而 我想拟合一个基于点误差使用加权的多项式 我已经发现scipy curve fit http docs scipy org doc scipy refe
  • 在 Windows 上的 python2.5 上安装 Openpyxl

    我努力了easy install install openpyxl and python setup install 两者都失败了 我也尝试过easy install openpyxl并再次失败 我包括了我得到的输出 当我尝试时easy i
  • SQLAlchemy 在 MySQL 上使用什么列类型作为“文本”?

    我的总体用例是试图确定我是否可以编写一个与数据库无关的 至少支持 Postgres 和 MySQL 存储一些大数据作为原始文本 认为 500MB 作为粗略的理论上限 基于这个答案 https stackoverflow com a 2557
  • Python:当为变量分配新内容时,“旧”内存是否被释放?

    如果为变量分配了任何新内容 为 旧内容 分配的内存是否会 正确 释放 例如 在以下脚本中 在为 a 分配一些新内容后 变量 a 作为零数组的内存是否会被释放 import numpy a numpy zeros 1000 a a 1 我想象
  • 安装 Ta-lib 会产生 gcc 错误

    当我尝试在我的 mac 上将 Ta lib 作为全局包安装时 出现 gcc 错误 我收到以下错误 gcc Wno unused result Wsign compare Wunreachable code DNDEBUG g fwrapv
  • 将函数应用于 3D numpy 数组

    我有一个来自 Image PIL Pillow 对象的 numpy 3D 数组 178 214 235 180 215 236 180 215 235 146 173 194 145 172 193 146 173 194 126 171
  • 群组名称不能以数字开头?

    看来我不能使用像这样的正则表达式 P lt 74xxx gt 0 9 重新打包会引发错误 sre constants error bad character in group name u 74xxx 我似乎无法使用以数字开头的组名称 为什
  • 在 pandas eval 中调用 round()、ceiling()、floor()、min()、max()

    正如标题所说 有没有办法在 pandas eval 中支持 round ceiling min max floor 函数 数据框 import pandas as pd import numexpr as ne op d ID 1 2 3
  • argparse add_argument 别名

    有没有办法使用 argparse 创建别名 例如 我想做这样的事情 parser add argument foo parser add argument alias bar foo 也就是说 使用 bar应该相当于使用 foo 您可以简单
  • python中终止进程的跨平台方法

    当我尝试使用 subprocess Popen terminate 或 Kill 命令终止 Windows 中的进程时 出现访问被拒绝错误 如果文件不再存在 我真的需要一种跨平台的方式来终止进程 是的 我知道这不是做我正在做的事情的最优雅的
  • 从 Java 调用 Python 代码时出现问题(不使用 jython)

    我发现这是从 java 运行 使用 exec 方法 python 脚本的方法之一 我在 python 文件中有一个简单的打印语句 但是 我的程序在运行时什么也没做 它既不打印Python文件中编写的语句 也不抛出异常 程序什么都不做就终止了
  • Python、Oracle DB、列中的 XML 数据,获取 cx_Oracle.Object

    我正在使用 python 从 Oracle DB 获取数据 所有行都有一个包含 XML 数据的列 当我使用 python 打印从 Oracle DB 获取的数据时 包含 XML 数据的列将打印为 0x7fffe373b960 处的 cx O
  • 类型错误:对于仅使用浮点数的函数,返回数组必须是 ArrayType

    这个实在是难倒我了 我有一个计算单词权重的函数 我已经确认 a 和 b 局部变量都是 float 类型 def word weight term a term freq term print a type a b idf term prin
  • 使用 Python PuLP 混合整数规划的时间限制

    我一直在使用PuLP http pythonhosted org PuLP 解决我感兴趣的特定混合整数线性规划 MIP 但是 随着问题规模的增长 PuLP 花费的时间太长 我希望能够运行求解器一段时间 并在需要很长时间的情况下提前终止它 并

随机推荐

  • 为 PHPUnit 配置文件名

    我是 PHPUnit 的新用户 我正在将现有的测试 断言 转换为 PHPUnit 框架 以提供更好的测试环境和代码覆盖率 但是 我需要知道如何尝试让 PHPUnit 使用我们的测试代码结构 我们的项目目录类似于以下内容 应用1 CREDIT
  • 如何在处理开发环境(PDE)中进行调试,还有支持智能感知的插件吗

    我是处理开发环境的新手 我做了功课 我发现的只是将处理库导入Java IDE eclipse 并使用调试 我想知道是否有一个PDE插件可以帮助进行智能感知和调试 就像小草图偏微分方程非常方便 调试 自推出以来处理3 调试现在是Process
  • Laravel in_array 验证规则

    我定义了一个数组 this gt allslots array 10 00 00 10 10 00 10 20 00 10 30 00 10 40 00 10 50 00 11 00 00 11 10 00 11 20 00 11 30 0
  • C 中基本数据类型的大小

    我有一个从某个网站复制的示例程序 int main void int answer short x 1 long y 2 float u 3 0 double v 4 4 long double w 5 54 char c p typede
  • 如何在另一个线程上正确打开和关闭 NSStream

    我有一个应用程序在另一个线程上使用 NSStream 连接到服务器 如果用户决定注销 应用程序还会关闭连接 问题是我永远无法在用户断开连接时成功关闭流或线程 下面是我的代码示例 介绍了如何为我的网络创建线程并尝试关闭流 NSThread n
  • openCV 中的线性颜色渐变

    我正在尝试像 Photoshop 一样创建两种颜色的渐变 输入两种颜色的r g b 结果将是渐变的Mat 我尝试了至少 5 个小时 但找不到 Photoshop 的确切效果 我尝试创建自己的公式 因为我在网上找不到任何公式 将 RGB 更改
  • AOSP 构建日志中的 clang 命令中的 @ 是什么意思?

    In AOSP9 0 0 r30的构建日志 有这样的 clang 命令 prebuilts clang host linux x86 clang 4691093 bin clang OpenSource Build Android 9 0
  • 二维数组,用指定值修剪

    使用指定值修剪二维数组的好方法是什么 A 0 0 0 0 0 1 2 3 0 0 4 0 6 0 0 0 0 0 0 0 B trim A 0 results in B 1 2 3 4 0 6 修剪操作应该能够从四个边中的任何一个切掉 伪代
  • Solr:索引没有定义可操作的 DataImportHandler

    我试图使用 DataImportHandler 在云模式下使用 Solr 来索引我的 MySQL 数据库 以下是它使用 default 配置集的配置 solr 7 3 0 server solr configsets default con
  • 在 HTML 中的表格单元格内添加图像

    很抱歉 我无法做这个简单的事情 我无法在表格单元格中添加图像 以下是我编写的代码 CAR APPLICATION table border 5 align center th ABCD th tr th Name th th Origin
  • 某些边缘无法访问隐藏轮廓属性 EdgePrims

    我正在努力改变LineJoin对于 MATLAB 等高线图中的某些线 当我修改EdgePrims 只有 部分线路 受到影响 num incs 3 x linspace 1 1 num incs Xa Ya meshgrid x x Z ab
  • 无法删除所有 Azure 网站连接字符串

    对于我的团队目前正在开发的一个网站 我们正在尝试编写一些 PowerShell 自动化来临时覆盖通常位于 Web config 中的连接字符串 然后稍后将其删除 但是 使用 PowerShell cmdlet 和 Azure REST AP
  • OSX — 配置 Emacs 以使用 NSSpellChecker

    我在对 Aquamacs 进行逆向工程以提取 NSSpellChecker 的用法 功能时遇到问题 我想将这种用途 功能从源代码合并到 Emacs 的基本构建中 我找到了看似相关的文件 ns win el flyspell el and i
  • 初学者:rails 语法

    我刚刚开始学习 ruby on Rails 我正在使用 Rails 敏捷 Web 开发 第 4 版 Rails 3 1 一书 我安装了 Rails 3 1 3 书中的例子显示了这样的代码 但这段代码不起作用 我必须将代码更改为 这有效 但我
  • Tensorflow:没有启用任何 MLIR 优化通道(注册 1)

    我使用一个非常小的模型来使用 TensorFlow 2 3 和 keras 进行测试 查看我的终端 我收到以下警告 I tensorflow compiler mlir mlir graph optimization pass cc 118
  • 从 C# 中的 .resx 文件读取字符串

    如何在 C 中从 resx 文件读取字符串 ResourceManager除非您从某个位置加载 否则不需要external资源 对于大多数情况 假设您创建了一个项目 DLL WinForms 等等 您只需使用项目命名空间 资源 和资源标识符
  • URL 主机中可以显示哪些有效字符?

    我正在编写一些处理 URL 的代码 并且我想确保我不会遗漏一些奇怪的情况 除 A Z 0 9 和 之外 主机是否还有其他有效字符 这包括子域中的任何内容等 本质上是 和第一个 之间的任何内容 Thanks 请参见对有效主机名的限制 http
  • 将 AngularFire 与 Angular ui-router 一起使用时如何启用路由安全?

    是否可以使用AngularFire 路线安全模块 https github com firebase angularFire seed blob master app js module routeSecurity js有角的UI路由器 h
  • 如果我在应用程序中添加 ACTION-VIEW 最终结果是什么?

    我从我的 Android 工作室收到了这个通知 应用程序无法被 Google 搜索索引 考虑添加至少一个 具有 ACTION VIEW 意图填充器的活动 请参阅问题说明 更多细节 添加深层链接以使您的应用程序进入 Google 索引并获得安
  • 如何跟踪 Django 中的按钮单击?

    Views py 我希望能够转到用户页面 然后单击并通过与 Twitter 完全相同的按钮关注他们 我有点知道如何添加用户 正如您在我的视图中通过添加变量看到的那样 但我真的不知道如何将其实际实现到一个按钮中 让我可以跟随用户 我已经被困在