Django:用户报告网站上的某些网址

时间:2017-09-12 01:44:57

标签: python django

所以我正在尝试构建一些东西,以便用户能够在网站上报告某些内容。这是模型,

class Report(models.Model):
    reporting_url = models.URLField()
    message = models.TextField()

我为此模型创建了包含'message'字段的Form,因为'reporting_url'是需要自行填充的内容,具体取决于用户点击“Report”按钮的具体页面。

def report(request):
url_report = ???
if request.method == 'POST':
    form = ReportForm(request.POST or None)
    if form.is_valid():
        new_form = form.save(commit=False)
        new_form.reporting_url = url_report
        new_form.save()

我想知道如何根据用户点击“报告”按钮的页面,将特定网址传递给表单中的“reporting_url”字段? (就像我们在社交网络上看到的那样)。

我这样做是否正确,或者有更好的方法吗? 请帮我这个代码。在此先感谢!

2 个答案:

答案 0 :(得分:1)

如果该特定页面上有报告按钮,那么我相信您可以编写自定义上下文处理器。

更多信息:Django: get URL of current page, including parameters, in a template

https://docs.djangoproject.com/en/1.11/ref/templates/api/

或者可以直接在函数的views.py中编写它并设置

url_report = request.get_full_path()

答案 1 :(得分:0)

我认为您可以在网址的同一页面上使用该表单并使用:

 url_report = request.get_full_path()
<\ n>在视图中,获取当前网址。

否则,如果要为报告表单创建单独的视图。你可以使用

 url_report = request.META.get('HTTP_REFERER')

获取引导用户访问该页面的上一个或引用URL。

如果来自其他网站,

request.META.get(&#39; HTTP_REFERER&#39;)将返回“无”。