Когда я создаю пост, он показывает эту ошибкуПоле 'id' ожидало число, но получило 'd'. ПРИМЕЧАНИЕ: пост создается, но я получаю эту ошибку
Я пробовал много вещей, чтобы решить эту проблему, но они не работают, поэтому я хочу спросить кого-то, кто лучше меня здесь. Я пробовал использовать поле slug, оно не показывает этого, но я хочу использовать id, когда он начинает показывать ошибку. ПРИМЕЧАНИЕ: пост создается отлично, а потом появляется эта ошибка, но пост создан. Я пытался создать пост с помощью формы из фронтенда
позвольте мне показать некоторый код views.py
def blogpost(request):
if request.method == "POST":
form = BlogPostForm(request.POST, request.FILES)
if form.is_valid():
form.instance.creator = request.user
form.save() # ← no commit=False
messages.success(request, f'Hi, Your Post have been sent for review and would be live soon!')
return redirect('blog:home')
else:
form = BlogPostForm()
context = {
'form': form
}
return render(request, 'blog/AddPost.html', context)
# this is the blog list view
def blog_list(request):
posts = Blog.objects.filter(status='published').order_by('-created')
categoriess = Category.objects.all()
context = {
'posts': posts,
'categories': categoriess,
}
return render(request, 'blog/bloghome.html', context)
#this is the blog detail view
def blog_detail(request, post_id):
post = get_object_or_404(Blog, id=post_id)
# post = Blog.objects.filter(slug=blog_slug)
categories = Category.objects.all()
comments = post.comments.filter(active=True)
new_comment = None
if request.method == "POST":
comment_form = CommentForm(request.POST)
if comment_form.is_valid():
new_comment = comment_form.save(commit=False)
new_comment.post = post
new_comment.name = request.user
new_comment.save()
else:
comment_form = CommentForm()
context = {
'post': post,
'comments': comments,
'comment_form': comment_form,
'new_comment': new_comment,
'categories': categories,
}
return render(request, 'blog/blog-details.html', context)
models.py
class Blog(models.Model):
id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
title = models.CharField(max_length=10000, null=True, blank=True, verbose_name="Title")
content = models.TextField(verbose_name="Post Content")
# slug = models.SlugField(unique=True)
image = models.ImageField(upload_to="blog-images/%Y/%m/%d/", verbose_name="Post Thumbnail")
category = models.ForeignKey(Category, on_delete=models.DO_NOTHING, verbose_name="Category", null=True)
tags = models.ManyToManyField(Tag, related_name='tags', verbose_name="Tag")
status = models.CharField(choices=STATUS_CHOICE, default="published", max_length=150, verbose_name='Status')
creator = models.ForeignKey(User, on_delete=models.DO_NOTHING, verbose_name="Creator", null=True)
created = models.DateTimeField(auto_now_add=True ,verbose_name="Created", null=True)
def get_absolute_url(self):
return reverse('blog:blog-details', kwargs={'post_id': self.pk})
# return reverse('blog:blog-details', args=[self.slug])
# return reverse('blog:blog-details', kwargs={'pk': self.pk})
class Meta:
verbose_name = "Blog Post"
verbose_name_plural = "Blog Posts"
forms.py
class BlogPostForm(forms.ModelForm):
image = forms.ImageField(widget=forms.ClearableFileInput(attrs={'multiple': True}), required=True)
# content = forms.CharField(widget=forms.Textarea(attrs={'class': 'input is-medium'}), required=True)
tags = forms.CharField(widget=forms.TextInput(attrs={'class': 'input is-medium'}), required=True)
class Meta:
model = Blog
fields = ('title', 'content', 'image', 'category', 'tags')
addpost.html
<form action="" method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{form|crispy}}
<div class="form-group">
<button class="btn theme-bg rounded" type="submit">Send Message</button>
</div>
</form>
urls.py
from django.urls import path
from . import views
app_name = 'blog'
urlpatterns = [
path('', views.blog_list, name="home"),
# path('post/<uuid:posts_id>', views.blog_detail, name="blog-details"),
path('<uuid:post_id>', views.blog_detail, name='blog-details'),
path('post/categories/<slug:category_slug>', views.category, name="category"),
path('post/tags/<slug:tag_slug>', views.tag, name="tags"),
path('post/create/', views.blogpost, name="add-post"),
]
traceback
любая помощь будет признательна