要编写一个帖子查询系统,可以在两个模型中保存数据,可以使用以下步骤:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
class PostQuery(models.Model):
search_query = models.CharField(max_length=100)
created_at = models.DateTimeField(auto_now_add=True)
from django.shortcuts import render, redirect
from .models import Post, PostQuery
def search_posts(request):
if request.method == 'POST':
search_query = request.POST.get('search_query')
post_query = PostQuery.objects.create(search_query=search_query)
return redirect('search_results', pk=post_query.pk)
else:
return render(request, 'search.html')
def search_results(request, pk):
post_query = PostQuery.objects.get(pk=pk)
results = Post.objects.filter(title__contains=post_query.search_query)
return render(request, 'search_results.html', {'results': results})
search.html
,用于显示查询表单。
search_results.html
,用于显示查询结果。{% for result in results %}
{{ result.title }}
{{ result.content }}
{% empty %}
No results found.
{% endfor %}
urls.py
文件中添加 URL 映射。from django.urls import path
from .views import search_posts, search_results
urlpatterns = [
path('search/', search_posts, name='search_posts'),
path('search//', search_results, name='search_results'),
]
现在,你可以通过访问 /search/
来进行帖子查询,并在 /search/
查看查询结果。
上一篇:编写一个条件正则表达式