RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-339640

Alex Fox's questions

Martin Hope
Alex Fox
Asked: 2022-09-21 05:58:51 +0000 UTC

登录/注册后,重新加载页面 -> POST 请求 -> CSRF 令牌丢失或不正确

  • 1

我在 context_proccessors.py 中有两种注册和授权方法。这些方法可在网站的任何页面上使用,以便用户可以在任何页面上登录或注册

def login_view(request): # вьюшка авторизации

    if request.method == 'GET':
        form_log = LoginForm(request.POST or None)

        data = {
            'form_log' : form_log,
        }
        return data

    if request.method == 'POST':
        if request.POST.get('submit_type') == 'Войти':
            form_log = LoginForm(request.POST or None)
            if form_log.is_valid():
                username = form_log.cleaned_data['username']
                password = form_log.cleaned_data['password']
                user = authenticate(username=username, password=password)
                if user:
                    profile = login(request, user)
                    return {}
            data = {
                'form_log' : form_log,
            }
            return data
        return {}

def registration_view(request): # вьюшка регистрации

    if request.method == 'GET':
        form_reg = RegistrationForm(request.POST or None)

        context = {
            'form_reg' : form_reg,
        }
        return context

    if request.method == 'POST':
        if request.POST.get('submit_type') == 'Зарегистрироваться':
            form_reg = RegistrationForm(request.POST or None)
            if form_reg.is_valid():
                new_user = form_reg.save(commit=False)
                new_user.username = form_reg.cleaned_data['username']
                new_user.email = form_reg.cleaned_data['email']
                new_user.save()
                new_user.set_password(form_reg.cleaned_data['password'])
                new_user.save()
                Profile.objects.create(
                    user=new_user,
                )
                user = authenticate(username=form_reg.cleaned_data['username'],                                   
                                    password=form_reg.cleaned_data['password'])
                login(request, user)
                return {}
            context = {
                'form_reg' : form_reg,
            }
            return context
        return {}

授权或注册后,页面更新。如果再次刷新页面,会重复POST请求,会报错: 在此处输入图像描述

如何保证授权或注册成功后,通过更新POST页面,请求不重复???

python
  • 1 个回答
  • 10 Views
Martin Hope
Alex Fox
Asked: 2022-02-25 22:42:19 +0000 UTC

解析 BeautifulSoup 如何解析具有一个类而不是另一个类的元素?

  • 0

如何在不使用 BeautifulSoup解析项目标题的情况下解析项目?

<div class="item title">
    <span class="letter"></span>
</div>
<div class="item">
    <a class="link" href="">
        <span class="title"></span>
    </a>
</div>
<div class="item">
    <a class="link" href="">
        <span class="title"></span>
    </a>
</div>
python
  • 1 个回答
  • 10 Views
Martin Hope
Alex Fox
Asked: 2022-02-14 19:58:08 +0000 UTC

jquery 选择器 | 如何更改 $(this) 元素的值

  • -1

问题的本质是我如何选择这个评论的选择器并改变它的内容,因为有很多评论

我的脚本:

$(document).on('click', "#like", function(e){
        console.log("Click like")

        e.preventDefault()
        var id = $(this).attr('data-id')
        var like = $(this).text()

        const csrftoken = getCookie('csrftoken');

        data = {
            id : id,
            csrfmiddlewaretoken : csrftoken
        }
        $.ajax({
            method: "POST",
            data : data,
            url : "{% url 'comment-like' video.slug %}",
            success : function(data){
                if(data['like'] == 'ok') {
                    console.log("Like now")
                    console.log(like)
                    like++
                    console.log(like)
                    $(this).innerHTML = like
                }
                if(data['like'] == 'no') {
                    console.log("You voted")
                    console.log(like)
                    like++
                    console.log(like)
                    $(this).innerHTML = like
                }
                console.log(data)
            },
            error: function(error) {
                console.log(error)
            }
        })
    })

使用脚本处理的评论阻止:

<div class="comments">
<p>Комментарии:</p>
{% for comment in comments %}
<div class="comment">
    {{comment.nickname}} | {{comment.timestamp}} 
    {% if comment.is_child %}
    <div style="background-color: black; width: 300px;">
        <p>Ответ: {{comment.parent.nickname}}</p>
        <p>Комментарий: "{{comment.parent.text}}"</p>
    </div>
    {% endif %}
    <p>{{comment.text}}</p> 
    <p><a href="#" id="like" data-id="{{comment.id}}"><i class="far fa-heart"></i>{{comment.get_comment_likes}}</a></p>
    <button style="background-color: black;" class="reply" data-id="{{comment.id}}" data-parent={{comment.get_parent}}>Ответить</button>
    <form action="" method="POST" class="comment-form" id="form-{{comment.id}}" style="display:none;">
        <textarea type="text" name="comment-text">
        </textarea>
        <br>
        <input type="submit" class="btn submit-reply" data-id="{{comment.id}}" data-submit-reply="{{comment.get_parent}}" value="Отправить"/>
    </form>
</div>
{% endfor %}
<div>
    <form action="{% url 'create-comment' video.slug %}" method="POST" >
        {% csrf_token %}
        {{ comment_form.as_table }}
        <input type="submit" class="btn" value="Отправить"/>
    </form>
</div>
具体来说,这条线不起作用:
$(this).innerHTML = like
javascript
  • 1 个回答
  • 10 Views
Martin Hope
Alex Fox
Asked: 2022-01-19 02:07:51 +0000 UTC

姜戈 | 如何在不尖叫的情况下实现视图计数器!

  • 2

如何在通过浏览器重新加载排除 CREATION 的可能性(简单的选项 ala counter +=1 不起作用)的同时实现视图计数器。

class Post(models.Model):
    ...
    total_views = models.IntegerField(default=0)

    def counter(self):
        return self.total_views += 1
python
  • 1 个回答
  • 10 Views
Martin Hope
Alex Fox
Asked: 2022-01-13 04:28:18 +0000 UTC

模型类如何引用自身(ManyToManyField)?

  • 0

假设我有一个电影类(Film),并且由于在所有电影院站点上,当您去看您感兴趣的电影时,您可以使用带有推荐(类似电影)的字段,因此 Film 类必须引用一个数组本身的对象。

class Film(models.Model):
    recommend_films = models.ManyToManyField(Film, blank=True)

错误:未定义的变量:“电影”。

那么我该如何实现这个功能呢?

python
  • 1 个回答
  • 10 Views
Martin Hope
Alex Fox
Asked: 2020-04-21 03:03:43 +0000 UTC

无法将类型“System.Web.Mvc.SelectList”转换为“Microsoft.AspNetCore.Mvc.Rendering.SelectList”

  • 0

决定通过DropDownList进行过滤,但功能发誓!

使用函数查看(图 1.1):

带功能查看

包含主要模型的HomeViewModel.cs文件(图 1.2):

模型

asp.net-mvc
  • 1 个回答
  • 10 Views
Martin Hope
Alex Fox
Asked: 2020-02-11 06:50:55 +0000 UTC

INSERT 语句与 FOREIGN KEY 冲突

  • 1

我根据 Gosha Dudar 的视频教程在 ASP.NET 上写了一个站点,遇到以下错误:SqlException: The INSERT statement conflict with the FOREIGN KEY constraint "FK_OrderDetail_Order_orderId"。冲突发生在数据库“Shop”、表“dbo.Order”、列“id”中。代码中没有错误,只有在结帐时引发了这个异常

错误

编码:

using Shop.Data.Interfaces;
using Shop.Data.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Shop.Data.Repository
{
    public class OrdersRepository : IAllOrders
    {
        private readonly AppDBContent appDBContent;
        private readonly ShopCart shopCart;

        public OrdersRepository(AppDBContent appDBContent, ShopCart shopCart)
        {
            this.appDBContent = appDBContent;
            this.shopCart = shopCart;
        }
        public void createOrder(Order order)
        {
            order.orderTime = DateTime.Now;
            appDBContent.Order.Add(order);

            var items = shopCart.listShopItems;

            foreach(var el in items)
            {
                var orderDetail = new OrderDetail()
                {
                    carId = el.car.id,
                    orderId = order.id,
                    price = el.car.price
                };
                appDBContent.OrderDetail.Add(orderDetail);
            }
            appDBContent.SaveChanges();
        }
    }
}

订购型号:

using Microsoft.AspNetCore.Mvc.ModelBinding;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;

namespace Shop.Data.Models
{
    public class Order
    {
        [BindNever]
        public int id { get; set; }
        [Display(Name="Введіть ім'я")]
        [StringLength(20)]
        [Required(ErrorMessage = "Довжина ім'я не менше 20 символів")]
        public string name { get; set; }
        [Display(Name = "Введіть прізвище")]
        [StringLength(20)]
        [Required(ErrorMessage = "Довжина прізвища не менше 20 символів")]
        public string surname { get; set; }
        [Display(Name = "Введіть адресу")]
        [StringLength(20)]
        [Required(ErrorMessage = "Довжина адреси не менше 20 символів")]
        public string address { get; set; }
        [Display(Name = "Введіть телефон")]
        [DataType(DataType.PhoneNumber)]
        [StringLength(10)]
        [Required(ErrorMessage = "Довжина телефона не менше 10 символів")]
        public string phone { get; set; }
        [Display(Name = "Введіть електронну пошту")]
        [DataType(DataType.EmailAddress)]
        [StringLength(30)]
        [Required(ErrorMessage = "Довжина електронної пошти не менше 30 символів")]
        public string email { get; set; }
        [BindNever]
        [ScaffoldColumn(false)]
        public DateTime orderTime { get; set; }
        public List<OrderDetail> orderDetails { get; set; }
    }
}

订单详情型号:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Shop.Data.Models
{
    public class OrderDetail
    {
        public int id { get; set; }
        public int orderId { get; set; }
        public int carId { get; set; }
        public uint price { get; set; }
        public virtual Car car { get; set; }
        public virtual Order order { get; set; }
    }
}
c#
  • 3 个回答
  • 10 Views
Martin Hope
Alex Fox
Asked: 2020-05-30 02:38:24 +0000 UTC

继承/吸气剂[关闭]

  • -3
关闭 这个问题是题外话。目前不接受回复。

3年前关闭。

  • 寻求调试帮助的问题(“为什么这段代码不起作用? ”)应该包括期望的行为、具体的问题或错误,以及在问题中重现它的最少代码。没有明确描述问题的问题对其他访问者毫无用处。请参阅如何创建一个最小的、独立的和可重现的示例。
  • 该问题是由不再复制的问题或错字引起的。虽然类似问题可能与本网站相关,但该问题的解决方案不太可能帮助未来的访问者。通常可以通过在发布问题之前编写和研究一个最小程序来重现问题来避免此类问题。
改进问题

吸气剂不显示数据

#include <iostream>

using namespace std;

class Tech
{
    string name;
    int value;
    string company;
public:
    Tech() { name = "PS4"; value = 1000; company = "Sony"; }
    Tech(string name, int value, string company);
    void setN(string n) { name = n; }
    string getN() { return name; }
    void setV(int v) { value = v; }
    int getV() { return value; }
    void setC(string c) { company = c; }
    string getC() { return company; }
};

class Mothercard : public Tech
{
    string connectorType; // тип разьема
    string formfactor; // формфактор
    string supportMemory; // поддержка памяти
    int countChannels; // кол-во канналов
    string chipSet; // чипсет
 public:
    Mothercard() {
    setN("Asus H110M-K"); setC("Asus"); setV(1555); connectorType = "Socket 1151";
    formfactor = "MicroATX"; supportMemory = "DDR4 DIMM"; countChannels = 2; chipSet = "Intel H110";
    }
    Mothercard(const string n, const string c, int v, const string connector, const string formf, const string supportM, int channels, const string chip);
    string getConType() { return connectorType; }
};

Mothercard::Mothercard(string n, string c, int v, string connector, string formf, string supportM, int channels, string chip)
{
    setN(n);
    setC(c);
    setV(v);
    connectorType = connector;
    formfactor = formf;
    supportMemory = supportM;
    countChannels = channels;
    chipSet = chip;
}     

int main()
{
    setlocale(LC_ALL, "ru");

    Mothercard mothercards[5]
    {
    Mothercard("Asus H110M-K", "Asus", 1543, "Socket 1151", "MicroATX", "DDR4 DIMM", 2, "Intel H110"),
    Mothercard("Gigabyte B450 Aorus Elite", "Gigabyte", 3115, "Socket AM4", "ATX", "DDR4 DIMM", 2, "AMD B450"),
    Mothercard("Asus Prime Z370-P II", "Asus", 3804, "Socket 1151", "ATX", "DDR4 DIMM", 2, "Intel Z370"),
    Mothercard("Asus Prime H310M-K", "Asus", 1752, "Socket 1151", "MicroATX", "DDR4 DIMM", 2, "Intel H310"),
    Mothercard("Asus Prime B450-PLUS", "Asus", 2853, "Socket AM4", "ATX", "DDR4 DIMM", 2, "AMD B450")
    };

    cout << "Имя\t\t\t : " << mothercards[0].getN() << "\nЦена\t\t\t : 1 543 грн\nТип разъема\t\t : " << mothercards[0].getConType() << "\nФормфактор\t\t : MicroATX\nПоддержка памяти\t : DDR4 DIMM\nКоличество каналов\t : 2\nЧипсет\t\t\t : Intel H110" << endl;

    system("pause");
    return 0;
}

错误:

E0349: 缺少与这些操作数对应的运算符“<<”

C2679 binary '<<': no operator found 接受'std::string' 类型的正确操作数(或没有可接受的转换)

c++
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5