在 django3 的 urls.py 中导入视图的正确语法是什么?
What is the proper syntax to import view in urls.py in django3?
将 view.py 导入 urls.py 的正确语法是什么
我正在尝试添加分页和搜索,并将 运行 放入 SyntaxError "SyntaxError: invalid syntax" 中。
这几天我尽力调试了。我可以看到这是我导入视图的方式。我尝试了很多组合,但非常感谢任何指导。
文件 "C:\Users\taylo\Desktop\pybox\blogdemo\blog\urls.py",第 3 行
blogdemo/blog/urls.py
from django.urls import path
from . import views
from .views index, single, SearchResultsListView
urlpatterns = [
path('', views.index, name='index'),
path('<int:id>/', views.single, name='single'),
path('search/', SearchResultSingleView.as_view(), name='search_results'), #added
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
blogdemo/blogdemo/URLS.PY
from .views index, single, SearchResultsListView
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path, include # imported include module
urlpatterns = [
path('', include('blog.urls')), #added
path('admin/', admin.site.urls),
path('search/', SearchResultListView.as_view(), name='search_results'), #added
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
blogdemo/VIEWS.PY
from django.core.paginator import Paginator
from django.shortcuts import render
from .models import Article
def index(request):
articles = Article.objects.all()
paginator = Paginator(articles,3)
page = request.GET.get('page')
posts = paginator.get_page(page)
return render(request, 'index.html', {'posts': posts})
def single(request, id):
single = Article.objects.get(id=id)
nextpost = Article.objects.filter(id_gt=single.id).order_by('id').first()
prevpost = Article.objects.filter(id_lt=single.id).order_by('id').last()
return render(request, 'single.html', {"single": single, "prevpost": prevpost, "nextpost": nextpost})
class SearchResultsListView(SingleView):
model = Article
context_object_name = 'article_list'
template_name = 'templates/search_results.html'
blogdemo/MODELS.PY
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=50)
bio = models.TextField()
def __str__(self):
return self.name
class Category(models.Model):
category = models.CharField( max_length=50)
description = models.TextField()
def __str__(self):
return self.category
class Tag(models.Model):
name = models.CharField(max_length=264)
def __str__(self):
return self.name
class Article(models.Model):
title = models.CharField(max_length=50)
image = models.ImageField(upload_to="images/")
content = models.TextField()
category = models.ForeignKey(Category, on_delete=models.CASCADE)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
name = models.CharField(max_length=50, null=True)
offical = models.CharField(max_length=50, null=True)
abbreviation = models.CharField(max_length=50, null=True)
observed_fall = models.BooleanField(default=False)
yearfound = models.CharField(max_length=50, null=True)
country = models.CharField(max_length=50, null=True)
mass = models.CharField(max_length=50, null=True)
classification = models.CharField(max_length=50, null=True)
descriptions = models.CharField(max_length=50, null=True)
history = models.CharField(max_length=50, null=True)
place_of_purchase = models.CharField(max_length=50, null=True)
date = models.CharField(max_length=50, null=True)
shock_stage = models.CharField(max_length=50, null=True)
weathering_grade = models.CharField(max_length=50, null=True)
def __str__(self):
return self.title
问题部分有错误
应该是
from .views import index, single, SearchResultsListView
将 view.py 导入 urls.py 的正确语法是什么
我正在尝试添加分页和搜索,并将 运行 放入 SyntaxError "SyntaxError: invalid syntax" 中。
这几天我尽力调试了。我可以看到这是我导入视图的方式。我尝试了很多组合,但非常感谢任何指导。
文件 "C:\Users\taylo\Desktop\pybox\blogdemo\blog\urls.py",第 3 行
blogdemo/blog/urls.py
from django.urls import path
from . import views
from .views index, single, SearchResultsListView
urlpatterns = [
path('', views.index, name='index'),
path('<int:id>/', views.single, name='single'),
path('search/', SearchResultSingleView.as_view(), name='search_results'), #added
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
blogdemo/blogdemo/URLS.PY
from .views index, single, SearchResultsListView
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path, include # imported include module
urlpatterns = [
path('', include('blog.urls')), #added
path('admin/', admin.site.urls),
path('search/', SearchResultListView.as_view(), name='search_results'), #added
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
blogdemo/VIEWS.PY
from django.core.paginator import Paginator
from django.shortcuts import render
from .models import Article
def index(request):
articles = Article.objects.all()
paginator = Paginator(articles,3)
page = request.GET.get('page')
posts = paginator.get_page(page)
return render(request, 'index.html', {'posts': posts})
def single(request, id):
single = Article.objects.get(id=id)
nextpost = Article.objects.filter(id_gt=single.id).order_by('id').first()
prevpost = Article.objects.filter(id_lt=single.id).order_by('id').last()
return render(request, 'single.html', {"single": single, "prevpost": prevpost, "nextpost": nextpost})
class SearchResultsListView(SingleView):
model = Article
context_object_name = 'article_list'
template_name = 'templates/search_results.html'
blogdemo/MODELS.PY
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=50)
bio = models.TextField()
def __str__(self):
return self.name
class Category(models.Model):
category = models.CharField( max_length=50)
description = models.TextField()
def __str__(self):
return self.category
class Tag(models.Model):
name = models.CharField(max_length=264)
def __str__(self):
return self.name
class Article(models.Model):
title = models.CharField(max_length=50)
image = models.ImageField(upload_to="images/")
content = models.TextField()
category = models.ForeignKey(Category, on_delete=models.CASCADE)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
name = models.CharField(max_length=50, null=True)
offical = models.CharField(max_length=50, null=True)
abbreviation = models.CharField(max_length=50, null=True)
observed_fall = models.BooleanField(default=False)
yearfound = models.CharField(max_length=50, null=True)
country = models.CharField(max_length=50, null=True)
mass = models.CharField(max_length=50, null=True)
classification = models.CharField(max_length=50, null=True)
descriptions = models.CharField(max_length=50, null=True)
history = models.CharField(max_length=50, null=True)
place_of_purchase = models.CharField(max_length=50, null=True)
date = models.CharField(max_length=50, null=True)
shock_stage = models.CharField(max_length=50, null=True)
weathering_grade = models.CharField(max_length=50, null=True)
def __str__(self):
return self.title
问题部分有错误
应该是
from .views import index, single, SearchResultsListView