Python 如何在用户未在Django中输入数据的POST请求中发送数据

Python 如何在用户未在Django中输入数据的POST请求中发送数据,python,django,post,django-models,django-forms,Python,Django,Post,Django Models,Django Forms,我正试图为我的网站制作一份股票观察名单。网页上已经显示了公司名称和股价等数据。我希望用户只需单击同一网页上的按钮,它就会将数据添加到用户的观察列表中 这是一个股票分析网站。我不知道怎么做。 PS-我对编码是新手 观察列表模型: class WatchList(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) watchlist = models.CharField(max_length=

我正试图为我的网站制作一份股票观察名单。网页上已经显示了公司名称和股价等数据。我希望用户只需单击同一网页上的按钮,它就会将数据添加到用户的观察列表中

这是一个股票分析网站。我不知道怎么做。 PS-我对编码是新手

观察列表模型:

class WatchList(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    watchlist = models.CharField(max_length=300, default='')
    price = models.IntegerField(default='')
html:

{%extends'主页/layout.html%}
{%block content%}
{%load static%}
技术分析
技术分析
  • {{ticker}-
  • {{price}
  • {{diff_green}
  • {{diff_red}
{%csrf_令牌%}
诸如{{ticker}}和{{price}之类的信息是要发布到模型并在不同html上显示给用户的数据

预期结果是通过单击将一家公司及其价格添加到观察列表模型中

  • 您可以在django.forms.Form中设置required=False
  • class WatchListForm(forms.Form)
    user=forms.ModelChoiceField(queryset=user.objects.all(),widget=forms.HiddenInput())
    watchlist=models.CharField(widget=forms.TextInput({'class':'watchlist'}))
    price=models.IntegerField(widget=forms.HiddenInput())
    
    
    {%csrf_令牌%}
    {{form.user}
    {{form.price}}
    {{form.watchlist}}
    
    带有request.user和price的初始表单并保存

    或者,您可以在调用form.u有效函数后在视图中设置值

    如果form.is_有效():
    data=表格.U数据
    data.update({'user':request.user,'price':some_price})
    
    或者使用参数更新POST数据

    request.POST.update({'user':request.user,'price':some_price})
    
    {% extends 'homepage/layout.html' %}
    {% block content %}
    {% load static %}
        <head>
            <title>Technical Analysis</title>
            <link rel="stylesheet" href="{% static 'tech_analysis/tech_analysis.css' %}">
        </head>
    
        <div class="line"></div>
        <div class="head">
            Technical Analysis
        </div>
        <div class="coname">
            <ul class="ticker_table">
                <li class="ticker_name">{{ ticker }}-</li>
                <li class="ticker_price">{{ price }}</li>
                <li class="diff_green">{{ diff_green }}</li>
                <li class="diff_red">{{ diff_red }}</li>
            </ul>
            <form action="{% url 'bsh_user:Userpage' %}" method="post">
                {% csrf_token %}
                 <input class="watchlist" type="submit" value="Add To Watchlist +">
            </form>
    
        </div>