删除django中的确认(Delete confirmation in django)
我正在研究django的一个项目。 我有这部分代码,当我想删除一个专辑时,它显示是或否可供选择,但问题是,无论我做出什么选择,它总是删除专辑。 我知道我必须在确认选项中添加一些东西,但我不想要在哪里或什么。
<form action="{% url 'music:delete_album' album.id %}" method="post" style="display: inline;"> {% csrf_token %} <input type="hidden" name="album_id" value="{{ album.id }}" /> <button type="submit" onclick="confirm('Are you sure ?')" class="btn btn-default btn-sm"> <span class="glyphicon glyphicon-trash"></span> </button> </form>
这是delete_album视图:
def delete_album(request, album_id): album = Album.objects.get(pk=album_id) album.delete() albums = Album.objects.filter(user=request.user) return render(request, 'music/index.html', {'albums': albums})
I am working on a project in django. I have this part of code, when I want to delete an album, it shows Yes or No to choose, but the problem is, whatever the choice I make, it always delete the album. I know I have to add something to the confirmation option but I don't want where or what.
<form action="{% url 'music:delete_album' album.id %}" method="post" style="display: inline;"> {% csrf_token %} <input type="hidden" name="album_id" value="{{ album.id }}" /> <button type="submit" onclick="confirm('Are you sure ?')" class="btn btn-default btn-sm"> <span class="glyphicon glyphicon-trash"></span> </button> </form>
and this is the delete_album view :
def delete_album(request, album_id): album = Album.objects.get(pk=album_id) album.delete() albums = Album.objects.filter(user=request.user) return render(request, 'music/index.html', {'albums': albums})
原文:https://stackoverflow.com/questions/46625535
更新时间:2023-03-23 19:03
最满意答案
一个选项,使用Linq:
var doc = new HtmlDocument(); doc.LoadHtml(html: Resources.Html); var startNode = doc.DocumentNode.SelectSingleNode("//a[@name = 'doc_id_1']"); var endNode = doc.DocumentNode.SelectSingleNode("//a[@name = 'doc_id_2']"); var parent = startNode.ParentNode; var nodesYouWant = parent.ChildNodes .SkipWhile(node => node != startNode) // skip all nodes up to the start node .Skip(1) // skip the start node .TakeWhile(node => node != endNode) // take all nodes up to the next anchor .Where(node => node.Name == "div"); // select only div nodes
要么:
var currentNode = doc.DocumentNode.SelectSingleNode("//a[@name = 'doc_id_1']"); var endNode = doc.DocumentNode.SelectSingleNode("//a[@name = 'doc_id_2']"); var nodesYouWant = GetEnclosedNodes(currentNode, endNode).Where(node => node.Name == "div"); private static IEnumerable<HtmlNode> GetEnclosedNodes(HtmlNode currentNode, HtmlNode endNode) { currentNode = currentNode.NextSibling; while (currentNode != null && currentNode != endNode) { yield return currentNode; currentNode = currentNode.NextSibling; } }
One option, using Linq:
var doc = new HtmlDocument(); doc.LoadHtml(html: Resources.Html); var startNode = doc.DocumentNode.SelectSingleNode("//a[@name = 'doc_id_1']"); var endNode = doc.DocumentNode.SelectSingleNode("//a[@name = 'doc_id_2']"); var parent = startNode.ParentNode; var nodesYouWant = parent.ChildNodes .SkipWhile(node => node != startNode) // skip all nodes up to the start node .Skip(1) // skip the start node .TakeWhile(node => node != endNode) // take all nodes up to the next anchor .Where(node => node.Name == "div"); // select only div nodes
Or:
var currentNode = doc.DocumentNode.SelectSingleNode("//a[@name = 'doc_id_1']"); var endNode = doc.DocumentNode.SelectSingleNode("//a[@name = 'doc_id_2']"); var nodesYouWant = GetEnclosedNodes(currentNode, endNode).Where(node => node.Name == "div"); private static IEnumerable<HtmlNode> GetEnclosedNodes(HtmlNode currentNode, HtmlNode endNode) { currentNode = currentNode.NextSibling; while (currentNode != null && currentNode != endNode) { yield return currentNode; currentNode = currentNode.NextSibling; } }
相关问答
更多-
正如您所发现的,某些XPath表达式不起作用,因为
标记并非全部关闭。 因此,您需要在XPath表达式中满足此要求: //div[@id='TasheelPaymentCtrl1_dvPayment']/table/tbody/tr[2]/td[5] - 没有变化 //div[@id='TasheelPaymentCtrl1_dvPayment']/table/tbody/tr[3]/td[5] - 应该是//div[@id='TasheelPaymentCtrl1_dvPayment']/table ... 正则表达式: [^\"]*.wmv)(\"|\'))\\s*>(?.*)\\s* [ 注意 :\ s *用于几个地方,以匹配html中可能出现的额外空白字符。 示例C#代码: ////// Assigns proper values to link and name, if the htmlId matches the pattern /// Matches only for .wmv fi ... for link in soup.select('td.subjectCell a'): print link.text 它选择(就像CSS一样)具有subjectCell类的td元素中的元素。 for link in soup.select('td.subjectCell a'): print link.text It selects (just like CSS) the a elements inside td elements that have the subjectCell ...$xml = new DOMDocument; libxml_use_internal_errors(true); $xml->loadHTMLFile($url); libxml_clear_errors(); libxml_use_internal_errors(false); $xpath = new DOMXPath($xml); foreach ($xpath->query('//a[contains(@href, "www")]/img') as $entry) { var_dump($ ...如果没有看到您正在获取的错误或HTML文档的其余部分,则很难提供帮助,但您可能会尝试将XPath更改为//div[@class='statusType'] 。 这将查找文档中的所有div ,其class属性等于statusType。 笔记: //选择器在大型文档上的性能代价可能很高。 如果属性值中存在其他类,则@class='statusType'将不匹配; 考虑contains(@class, 'statusType') 。 注意文档中可能存在多个匹配div情况。 SelectSingleNode将选择第 ...from BeautifulSoup import BeautifulSoup txt = '''如何在htmlagility中提取两个锚标签之间的不同div?(How to extract different divs between two anchor tags in htmlagility?)[2021-11-19]
一个选项,使用Linq: var doc = new HtmlDocument(); doc.LoadHtml(html: Resources.Html); var startNode = doc.DocumentNode.SelectSingleNode("//a[@name = 'doc_id_1']"); var endNode = doc.DocumentNode.SelectSingleNode("//a[@name = 'doc_id_2']"); var parent = startNod ...尝试这个: static void Main(string[] args) { var htmlDoc = new HtmlDocument(); htmlDoc.Load(@"E:\Libs\HtmlAgilityPack.1.4.0\htmldoc.html"); foreach(HtmlNode node in htmlDoc.DocumentNode .SelectNodes("//img[@src an ...简单的名称,地址和电话可以使用 name = ' '.join(soup.find('div', {'class': 'limitedTitle'}).text.split()) adress = ' '.join(soup.find('div', {'class': 'limitedText'}).text.split()) phone = ''.join(soup.find('div', {'class': 'propertyContactText'}).text.split()) Simple fo ...如何从字符串中提取具有特定关键字的链接锚文本(How to extract link anchor text with a certain keyword from a string)[2023-03-08]
如果您要解析HTML以从锚标记中提取href属性值,请使用HTML / DOM Parser(绝对不要使用正则表达式)。 PHP简单的HTML DOM解析器 PHP XML DOM If you're parsing HTML to extract href attribute values from anchor tags, use an HTML/DOM Parser (definitely don't use regex). PHP Simple HTML DOM Parser PHP XML DOM ...相关文章
更多- vicalloy的我与django
- Django资源汇总(转)
- Django下载及安装
- Haystack - Search for Django
- Django and full-text search
- 分享:django-haystack+solr实现搜索
- 分享:django-haystack+solr实现搜索
- django-haystack+solr实现搜索
- 在django中加入搜索引擎
- django开发微信公众平台遇到的问题记录
最新问答
更多- 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
- 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
- OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
- 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
- codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
- 在计算机拍照在哪里进入
- 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
- No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
- 单页应用程序:页面重新加载(Single Page Application: page reload)
- 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
- System.StackOverflow错误(System.StackOverflow error)
- KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
- 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
- android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
- TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
- 企业安全培训的各项内容
- 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
- C#类名中允许哪些字符?(What characters are allowed in C# class name?)
- NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
- 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
- 将多个行和可变行移动到列(moving multiple and variable rows to columns)
- 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
- 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
- Angular $资源不会改变方法(Angular $resource doesn't change method)
- 在Angular 5中不是一个函数(is not a function in Angular 5)
- 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
- 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
- 常见的python rpc和cli接口(Common python rpc and cli interface)
- Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
- 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)