说我有这个网页:http://ww.xyz.com/Product.aspx? CategoryId
= 1
如果CategoryId = 1的名称是"Dogs",我想将URL转换为如下内容:http:
//ww.xyz.com/Products/Dogs
问题是如果类别名称包含外来(或对于URL无效)字符.如果CategoryId = 2的名称是"Göraäldre",那么新网址应该是什么?
逻辑上它应该是:
http: //ww.xyz.com/Products/Göraäldre
但它不起作用.首先是因为空间(我可以很容易地用短划线取代)但是外国人物呢?在Asp.net中我可以使用URLEncode函数,它会给出类似这样的东西:
http://ww.xyz.com/Products/G%c3%b6ra+%c3%a4ldre
但是我不能说它比原来更好url(http://ww.xyz.com/Product.aspx?CategoryId=2)
理想情况下,我想生成这个,但我怎么能自动执行此操作(即将外来字符转换为'安全'url字符):http:
//ww.xyz.com/Products/Gora-aldre
我使用Django从Tango学习Django,当我输入时我不断收到此错误:
python manage.py makemigrations rango
python manage.py migrate
Run Code Online (Sandbox Code Playgroud)
这是输出:
django.db.utils.IntegrityError: UNIQUE constraint failed: rango_category__new.slug
Run Code Online (Sandbox Code Playgroud)
Models.py:
from django.db import models
from django.template.defaultfilters import slugify
class Category(models.Model):
name = models.CharField(max_length=128, unique=True)
views = models.IntegerField(default=0)
likes = models.IntegerField(default=0)
slug = models.SlugField(unique=True)
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
super(Category, self).save(*args, **kwargs)
def __unicode__(self):
return self.name
class Page(models.Model):
category = models.ForeignKey(Category)
title = models.CharField(max_length=128)
url = models.URLField()
views = models.IntegerField(default=0)
def __unicode__(self):
return self.title
Run Code Online (Sandbox Code Playgroud) 我更改了 React Native/Expo 应用程序的名称,并想要更改与之匹配的 slug,但收到错误“CombinedError:[GraphQL] 名称为 '@-----/newName' 的体验不存在”。使用旧的蛞蝓,它仍然有效。有没有办法用不同的 slug 重建应用程序?
我正在尝试开发一个python算法来检查字符串是否可以是另一个单词的缩写.例如
fck
是匹配fc kopenhavn
因为它匹配单词的第一个字符.fhk
不匹配.fco
不应该匹配,fc kopenhavn
因为没有人会将FC Kopenhavn缩写为FCO.irl
是匹配的in real life
.ifk
是匹配的ifk goteborg
.aik
是匹配的allmanna idrottskluben
.aid
是匹配的allmanna idrottsklubben
.这不是一个真正的团队名称缩写,但我想除非您应用有关如何形成瑞典语缩写的领域特定知识,否则很难将其排除.manu
是匹配的manchester united
.很难描述算法的确切规则,但我希望我的例子能说明我所追求的内容.
更新我在显示匹配字母大写的字符串时犯了一个错误.在实际场景中,所有字母都是小写的,因此它不像检查哪些字母是大写的那么容易.
我试图在SO使用的形式的Django中启用缓慢的URL:example.com/id/slug.我没有启用slugs的问题,并且目前设置了以下形式的URL:http://127.0.0.1:8000/articles/id /(例如/ articles/1 /),并且工作正常.相应的URLpattern是:
(r'^(?P<object_id>\d+)/$', 'django.views.generic.list_detail.object_detail', info_dict),
Run Code Online (Sandbox Code Playgroud)
如果我将URL模式更改为:
(r'^(?P<slug>\d+)/$', 'django.views.generic.list_detail.object_detail', info_dict),
Run Code Online (Sandbox Code Playgroud)
然后,当我导航到http://127.0.0.1:8000/articles/another-article/时,我收到以下错误:
当前的URL,articles/another-article /与其中任何一个都不匹配.
但是,如果我尝试:
http://127.0.0.1:8000/articles/1/
Run Code Online (Sandbox Code Playgroud)
我收到错误:
找不到与查询匹配的文章
最终,我希望能够通过以下任一方式导航到aricle:
http://127.0.0.1:8000/articles/1/ 或 http://127.0.0.1:8000/articles/1/another-article/
我刚刚在Bamboo-ree-1.8.7堆栈上的应用程序上更新了rails到v2.3.6,编译后的slug大小已经增长到40.5Mb!在最后一次git推送之前,slug大小约为20Mb并使用rails v2.3.5.
是因为我的slug安装了两个导轨版本?可能我错过了一些东西,但我没有在我的应用程序中添加任何特殊的代码/文件,以便将slug大小增加~20Mb.
你能指点我怎样才能减少弹簧尺寸?
任何帮助将不胜感激.
非常感谢你提前.
我在配置我的网址时无法显示详细信息视图.点击此链接:<a href='{% url blog_detail blog.slug %}'>{{ blog.name }}</a>
显示blog.html
,当我认为它会显示blog-detail.html
.没有错误,浏览器栏example.com/blog/the-slug
显示:,但仍显示html blog.html
,而不是blog-detail.html
.有什么想法吗?谢谢你的想法.
网址:
url(r'^blog/', 'myapp.views.blog', name='blog'),
url(r'^blog/(?P<slug>[\w-]+)/$', 'myapp.views.blog_detail', name='blog_detail'),
Run Code Online (Sandbox Code Playgroud)
观点:
def blog(request):
blog_list = Blog.objects.all()
return render(request, 'blog.html', {'blog_list':blog_list})
def blog_detail(request, slug):
blog = get_object_or_404(Blog, slug=slug)
return render(request, 'blog-detail.html', {'blog':blog})
Run Code Online (Sandbox Code Playgroud)
编辑:@omouse请求的输出
这是点击链接的输出.它完全相同blog.html
,但它应该是blog-detail.html
.Argggg!
<div id='content-wrapper'>
<section>
<div class='blog-name'><h2><a href='/blog/test/'>Test</a></h2></div>
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy …
Run Code Online (Sandbox Code Playgroud) 我想将博客条目的任何标题转换为用户友好的URL.我使用rawurlencode()来做到这一点,但它给了我很多奇怪的字符串,如%s
.
该算法应该考虑像Ö,Ä等德国字符.我想从标题创建一个网址,并能够通过解码网址获得标题.
我尝试了一些代码:http://pastebin.com/L1SwESBn在其他一些问题中提供,但它似乎是一种方式.
例如 HÖRZU.de -> hoerzu-de -> HÖRZU.de
有任何想法吗?
该方法应该只允许0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-
URI字符串中的" "字符.
我正在尝试添加 slug,以便帖子的标题出现在网址中,但我在控制台上收到此消息:
You are trying to add a non-nullable field 'slug' to post without a default; we can't do that Please select a fix:
1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
2) Quit, and let me add a default in models.py
Run Code Online (Sandbox Code Playgroud)
模型.py
class Post(models.Model):
title = models.CharField(max_length=100)
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
slug = models.SlugField(unique=True)
def save(self, *args, **kwargs):
self.slug = self.slug or slugify(self.title)
super().save(*args, …
Run Code Online (Sandbox Code Playgroud)