所以我正在尝试构建一些东西,以便用户能够在网站上报告某些内容。这是模型,
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”字段? (就像我们在社交网络上看到的那样)。
我这样做是否正确,或者有更好的方法吗? 请帮我这个代码。在此先感谢!
答案 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;)将返回“无”。