django - 没有重定向到 Django 中的主页。将 http://127.0.0.1:8000/home/connect/jhvjhb/3 放入 url
问题描述
在 url 中输入http://127.0.0.1:8000/home/connect/jhvjhb/3时,url 被定义为采用一些随机字母,最后是主键。它应该重定向到家,但它不工作。我不知道正则表达式。
网址.py
from django.urls import path
from home.views import HomeView
from . import views
app_name = 'home'
urlpatterns = [
path('', HomeView.as_view(), name="home"),
path('connect/(?P<operation>.+)/(?P<pk>\d+)/', views.change_friends, name='change_friends')
]
模型文件.py
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Post(models.Model):
post = models.CharField(max_length=500)
user = models.ForeignKey(User, on_delete=models.CASCADE)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
class Friend(models.Model):
users = models.ManyToManyField(User)
current_user = models.ForeignKey(User, related_name='owner', null=True,on_delete=models.CASCADE)
@classmethod
def make_friend(cls, current_user, new_friend):
friend, created = cls.objects.get_or_create(
current_user=current_user
)
friend.users.add(new_friend)
@classmethod
def lose_friend(cls, current_user, new_friend):
friend, created = cls.objects.get_or_create(
current_user=current_user
)
friend.users.remove(new_friend)
视图.py
from django.views.generic import TemplateView
from django.shortcuts import render, redirect
from django.contrib.auth.models import User
from .forms import HomeForm
from .models import Post
class HomeView(TemplateView):
template_name = 'home/home.html'
def get(self, request):
form = HomeForm()
posts = Post.objects.all().order_by('-created')
users = User.objects.exclude(id=request.user.id)
args = {'form':form, 'posts':posts, 'users':users}
return render(request, self.template_name, args)
def post(self, request):
form = HomeForm(request.POST)
if form.is_valid():
post = form.save(commit=False)
post.user = request.user
post.save()
form = HomeForm()
return redirect('home:home')
args = {'form':form, 'text':text}
return render(request, self.template_name, args)
def change_friends(request, operation, pk):
return redirect('home:home')
解决方案
推荐阅读
- c++ - 使用模板时重复符号
- solr - 8.4.1 中的 solr 搜索查询问题
- javascript - 如何在组合框中添加工具提示,而不是在 Ext Js 中的项目中
- c# - VaultSharp:为什么我得到“没有路由处理程序”错误?
- sql - 如何加入 2 列并提取年份并计算 postgresql
- flutter - 我在颤振项目中遇到 Hive 错误
- css - 如何在具有网格布局的空/整页上强制页脚位于页面底部
- elasticsearch - 无法搜索 Elasticsearch/Kibana 未索引的字段
- reactjs - 防止组件重新渲染
- google-cloud-platform - 如何测试 Google Cloud Storage 的备份和恢复?