假设我有一个CreateArticleView
,如下所示CreateView
。
class CreateArticleView(CreateView):
model = ArticleModel
fields = ['title', 'text']
ArticleModel
实际上有 3 字段;它也有category
。
category
是一个网址参数,因为网址遵循以下正则表达式:127.0.0.1/category/(?P<category>[0-z]+)/articles/new/
。
我需要一些方法来从URL中获取category
(SO用户已经回答了这个问题)以及某种方式然后将这些数据放入我的ArticleModel
实例中(这没有)。
例如,假设用户想要创建一个名为“ArticleModel
”的title
文本,“哇!”
我会从POST(或GET)数据中获取text
和ArticleModel
,并可以使用article = ArticleModel.objects.create(title=title_from_POST, text=text_from_POST)
将其插入category
。但是,我还需要为ArticleModel
提供<?php
// Get the url of the browser
$url = isset($_SERVER["REQUEST_URI"]) ? $_SERVER["REQUEST_URI"] : "";
// Get the 7-digit number
$number = strpos($url, "=")>0 ? substr($url, strpos($url, "=")+1, strlen($url)) : "";
// Add the 7-digit number to a new link and return it
return $link = "wwww.referece.com/?ref=" . $number;
?>
kwarg。我该如何插入?
请注意:我没有建立人们可以发布文章的网站。上面的代码完全是例如。我正在寻找的是将URL变量提供给基于类的函数的一些方法。
答案 0 :(得分:0)
您可以使用self.kwargs字典覆盖form_valid方法并访问url参数。
示例:
class CreateArticleView(CreateView):
model = ArticleModel
fields = ['title', 'text']
def form_valid(self, form):
self.kwargs['category'] # Access the category or any other url parameters
return super(CreateArticleView, self).form_valid(form)
来源:https://docs.djangoproject.com/ja/1.9/topics/class-based-views/generic-editing/