如何让django所有网址成为顶级slu g? 顶级slug我的意思是所有网址都有独特的slug示例:
print(self, "Doing something else...")
// Prints like: <MyModule.MyClass: 0x7fd190d0f270> Doing something else...
// Sometimes like: <_TtCC14__lldb_expr_668MyModule7MyClass: 0x7fd190d0f270> Doing something else...
我有很多应用,例如文章,评论和其他自定义页面。
那么,你如何看待我用这样的模型创建应用程序的方法:
example.com/articles
example.com/article-1
example.com/article-2
example.com/article-3
example.com/reviews
example.com/reviews-1
example.com/reviews-2
but not:
example.com/articles/article-1
example.com/articles/article-2
example.com/articles/article-3
example.com/reviews/reviews-1
example.com/reviews/reviews-2
然后我将在我的文章模型中使用它:
class Link(models.Model):
slug = models.SlugField(unique=True)
from links.models import Link
class Article(models.Model):
title = models.CharField()
slug = models.OneToOneField(
Link,
on_delete=models.CASCADE,
primary_key=True,
)
body = models.TextField()
然后我的mane urls.py文件中只有一个url字段:
from links.models import Link
class Review(models.Model):
title = models.CharField()
slug = models.OneToOneField(
Link,
on_delete=models.CASCADE,
primary_key=True,
)
review = models.TextField()
现在我应该如何过滤我想要退回文章或评论的数据?
像这样或者可能存在更好的解决方案?
url(r'^(?P<slug>[-_\w]+)', views.link, name='link'),
我需要谷歌,因为如果我决定有一天更改/文章/博客,那么我将在谷歌搜索中打破数百个网址。
答案 0 :(得分:1)
你的想法几近完美。只有我推荐的更改:
1)似乎不需要Link
模型。您slug
模型本身内的CharField
可以是Article
class Article(models.Model):
title = models.CharField()
slug = models.CharField(max_length=255, unique=True)
body = models.TextField()
2)评论属于文章。因此,Review
对ForeignKey
这个Link
对象应该不再存在,而不是ForeignKey
,而应该Article
到string search; // not initialized, You define it's type and it's name.
string search = "something"; //initialized