Я работаю над проектом блога, используя Django, и хочу создать пост и обновить пост,
когда я пытаюсь обновить или создать сообщение, оно выглядит как эта ошибка в / post / 35 / update /
переопределение имени группы 'pk' как группы 2; была группа 1 в положении 41
но пост будет обновлен, если вернуться домой
мой model.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```