我正在使用Django开发博客项目,并且想要创建帖子并更新帖子, 当我尝试更新或创建帖子时,它会在/ post / 35 / update /中显示此错误 将组名“ pk”重新定义为组2;是第1组的第41名 但如果返回首页,该职位将得到更新 我的模型。py
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse
from PIL import Image
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
image = models.ImageField(default='default.jpg', upload_to='post_image')
tag_choices = (
('Sport', 'Sport'),
('Restaurants', 'Restaurants'),
('Historical Landmarks', 'Historical Landmarks'),
)
tag = models.CharField(max_length=100, default='non specified', choices=tag_choices)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('post-detail', kwargs={'pk': self.pk})
def save(self):
super().save()
img = Image.open(self.image.path)
if img.height > 300 or img.width > 300:
output_size = (300, 300)
img.thumbnail(output_size)
img.save(self.image.path) ```
my view.py
``` class PostCreateView(LoginRequiredMixin, CreateView):
model = Post
fields = ['title', 'tag', 'content', 'image']
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
class PostUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView):
model = Post
fields = ['title', 'tag', 'content', 'image']
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
def test_func(self):
post = self.get_object()
if self.request.user == post.author:
return True
return False```