如何在views.py django中管理

问题描述 投票:0回答:2

我在处理子弹时遇到了麻烦:我在管理面板中为每篇文章定义了不同的子弹,但是在我的网站上,如果我在应用程序的任何页面上键入任何随机的子弹(eg-fvrryybr,34,d4g5tg5),我进入views.py的文章功能的网页作为Django的初学者,我不知道该如何处理

____ view.py ___

 def article(request,slug):
    allarticles = Article.objects.all()
    context = {'allarticles':allarticles}
    return render(request,"news/Home/tnews/blog-single.html",context)

models.py

class Post(models.Model):
    no = models.CharField(max_length=1000,primary_key=True)
    title = models.CharField(max_length=100)
    content = models.TextField()
    cover = models.ImageField(upload_to='images/')
    timeStamp = models.DateTimeField(blank=True)
    slug = models.SlugField(null=False,unique=True)

    def __str__(self):
        return self.title

class Article(models.Model):
   heading = models.CharField(max_length=1000)
   player = models.CharField(max_length=100)
   article = models.TextField()
   source = models.CharField(max_length=50)
   date = models.DateTimeField(blank=True)
   image = models.ImageField(upload_to='images/')

   def __str__(self):
    return 'Article on '+ self.player

urls.py

   path("<slug:slug>",views.article,name='article')
python django slug
2个回答
0
投票
from django.shortcuts import get_object_or_404

def article(request,slug):
    allarticles= get_object_or_404(Article, slug=slug)
    context = {'allarticles':allarticles}
    return render(request,"news/Home/tnews/blog-single.html",context)

和urls.py

   path("<str:slug>",views.article,name='article')

class Article(models.Model):
   heading = models.CharField(max_length=1000)
   player = models.CharField(max_length=100)
   article = models.TextField()
   source = models.CharField(max_length=50)
   date = models.DateTimeField(blank=True)
   image = models.ImageField(upload_to='images/')


  slug = models.SlugField(unique=True)


   def __str__(self):
    return 'Article on '+ self.player

0
投票

将弹头添加到商品模型中

Class Article(models.Model):
    slug = models.SlugField(unique=True)
from django.shortcuts import get_object_or_404

def article_detail(request, article):
    article = get_object_or_404(Model_Name, slug=article)
    context = {'article ': article}
    return render(request,"news/Home/tnews/blog-single.html",context)

在urls.py中path('<slug:article>/", views.article_detail, name='detail'),get_object_or_404是类似于get()函数的函数,如果存在则返回一个对象,如果不存在则返回404。

如果要在标签的模板集href属性中添加链接href="{% url 'article' article.slug %}"另外,我认为您想获取文章的详细信息,因此可以像创建article_detail一样创建一个新函数并将变量传递给模板。

© www.soinside.com 2019 - 2024. All rights reserved.